考虑一个包含 Elements 的 Core Data 数据库,其中每个 Element 都有一个名为 的属性symbol
,问题是获取NSArray
每个符号的最简洁的方法。这可以通过以下方式来完成
-(NSArray*)symbolsInDatabase {
ENTRY_LOG;
NSError* err;
NSFetchRequest* request = [NSFetchRequest fetchRequestWithEntityName:@"Element"];
request.resultType = NSDictionaryResultType;
request.propertiesToFetch = [NSArray arrayWithObject:@"symbol"];
NSArray* arrayOfDictionaries = [self.database.managedObjectContext executeFetchRequest:request error:&err];
NSMutableArray* symbols = [[NSMutableArray alloc]initWithCapacity:[arrayOfDictionaries count]];
for (NSDictionary* d in arrayOfDictionaries) {
[symbols addObject:[d objectForKey:@"symbol"]];
}
EXIT_LOG;
return symbols;
}
然而,有一种烦人的感觉,我错过了一些东西,我可以-(NSArray*)filteredArrayUsingPredicate
以某种巧妙的方式使用,而不是遍历字典数组并提取对象作为symbol
键。
关于如何使这个更清洁的任何想法?