【发布时间】:2017-10-26 06:58:40
【问题描述】:
我在 CoreData 中有一个名为 Devices 的实体。设备具有以下属性: 名称、型号、制造商、所有者。所有属性都是字符串类型。我正在使用以下代码使用谓词从实体设备中获取值
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Devices" inManagedObjectContext:self.managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity];
request.fetchLimit = Device_LIMIT;
NSSortDescriptor *sortDisc = [NSSortDescriptor sortDescriptorWithKey:@"model" ascending:YES];
[request setSortDescriptors:@[sortDisc]];
NSError *error;
NSArray *array = [self.managedObjectContext executeFetchRequest:request error:&error];
if (array) {
arrName = [array valueForKey:@"Name"];
}
return arrName;
我通过这种方式得到了想要的结果。但是,我的问题是如何直接从设备实体中获取名称属性的数组,而不添加任何 if-else 或 for in 条件。
【问题讨论】:
-
想要的结果是什么?
-
设备实体中名称属性下的所有值。
-
您是否检查过
array是否拥有来自设备实体的所有记录? -
是的,它们来自设备实体。我只想知道核心数据是否有任何属性可以帮助替换 arrName = [array valueForKey:@"Name"];
-
执行for循环将值添加到
arrName
标签: ios objective-c core-data