Coredata для получения всех значений поля - PullRequest
2 голосов
/ 29 октября 2010

У меня есть объект («Настройки»), и я хочу получить все значения только в одном поле («Статус»). Я использую coredata.Кто-нибудь может мне помочь?

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

Объявите это в файле .h: NSMutableArray * eventArray;

и в .m файле

- (void)fetchRecords {   
    // Setup the fetch request  
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

    // Define our table/entity to use  
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Settings" inManagedObjectContext:managedObjectContext]; 

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Status" ascending:YES];

    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

    [fetchRequest setSortDescriptors:sortDescriptors];

    [fetchRequest setEntity:entity];

    [fetchRequest setEntity:entity]; 

    NSError *error; 

    // Get array of results.

    NSMutableArray *theResults = [[managedObjectContext executeFetchRequest:fetchRequest error:&error] mutableCopy];

    if (!theResults) {  
        // Handle the error.  
        // This is a serious error and should advise the user to restart the application  
    } 

    // Grab unique neighborhoods through NSSet.

    NSSet *uniqueElements = [NSSet setWithArray:[theResults valueForKey:@"Status"]];
    // Dump NSSet uniques into new array.

    NSMutableArray *sortedResults = [[NSMutableArray alloc] initWithArray:[uniqueElements allObjects]]; 

    for(int i = 0; i < [sortedResults count];i++)
    {
        NSLog(@"%d. %@", i+1, [sortedResults objectAtIndex:i]); 
    }

    // Save our fetched data to an array

    [self setEventArray: sortedResults];
}
0 голосов
/ 03 февраля 2011

Сначала вы можете получить массив значений:

NSFetchRequest *requestSettings = [[NSFetchRequest alloc] init];
[requestCodesList setEntity:[NSEntityDescription entityForName:@"Setting" inManagedObjectContext:managedObjectContext]];
NSArray *setting = [managedObjectContext executeFetchRequest:requestCodesList error:&error];
if (error) NSLog(@"Failed to executeFetchRequest to data store: %@", [error localizedDescription]); 

Затем вы передаете массив в NSString:

ComponentsJoinedByString: Создает и возвращает объект NSString, который являетсярезультат вставки данного разделителя между элементами массива.

  • (NSString *) componentsJoinedByString: (NSString *) Код разделителя:
NSString *settingChanged = [setting componentsJoinedByString:@","];

И после того, как вы можете использовать это где-нибудь в пользовательском интерфейсе (связывание, setStringValue и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...