Подтвердить что ты не робот

Coredata - выбор одного атрибута в массив

Цель: Я хотел бы получить значение одного атрибута (из сущности) из базы данных (основных данных) в массив.

Пример

Имя объекта = Сотрудники

Атрибут = employeeID

Я просто хочу, чтобы все employeeID были заполнены в массив/набор.

Вопрос

Ниже приведена моя реализация, я просто чувствую, что это своего рода раунд, я хотел бы знать, есть ли лучший способ сделать это.

код

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Employees"];

fetchRequest.resultType = NSDictionaryResultType;

[fetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:@"employeeID", nil]];

NSError *error      = nil;
NSArray *results    = [self.managedObjectContext executeFetchRequest:fetchRequest
                                                               error:&error];

NSMutableArray *employeeIDs = [NSMutableArray array];

for(id currentRecord in results)
{
    [employeeIDs addObject:[currentRecord objectForKey:@"employeeID"]];
}
4b9b3361

Ответ 1

Вы можете избежать последнего цикла цикла,

Вместо <

NSMutableArray *employeeIDs = [NSMutableArray array];

for(id currentRecord in results)
{
    [employeeIDs addObject:[currentRecord objectForKey:@"employeeID"]];
}

Попробуйте это,

NSMutableArray *employeeIDs = [results valueForKey:@"employeeID"];

Ответ 2

Один из способов сделать это -

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Employees"];
fetchRequest.resultType = NSDictionaryResultType;

NSError *error      = nil;
NSArray *results    = [self.managedObjectContext executeFetchRequest:fetchRequest
                                                               error:&error];

NSMutableArray *employeeIDs = [results valueForKey:@"employeeID"];