11

目的:データベース (コア データ) から (エンティティから) 1 つの属性の値を配列に取得したいと考えています。

エンティティ名 = 従業員

属性 = 従業員 ID

すべての従業員IDを配列/セットに入力したいだけです。

質問

以下は私の実装です。これは一種の回り道だと感じています。これを行うためのより良い方法があるかどうかを知りたいです。

コード

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"]];
}
4

2 に答える 2

23

最後の for ループを回避できます。

それ以外の、

NSMutableArray *employeeIDs = [NSMutableArray array];

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

これを試して、

NSMutableArray *employeeIDs = [results valueForKey:@"employeeID"];
于 2013-01-05T06:17:53.123 に答える
17

それを行う1つの方法は-

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

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

NSMutableArray *employeeIDs = [results valueForKey:@"employeeID"];
于 2013-01-05T06:18:11.783 に答える