我正在为iOS应用程序使用CoreData(NSManagedObject,UIManagedDocument),我想知道是否可以获取属性数组。
例如,假设我的数据库中有Person
个实体,而每个Person
都有一个名为income
的属性和一个名为name
的名称。假设我的数据库中有多个Person
s。是否可以获取包含整个数据库所有收入的数组? (每个人的收入作为条目的数组)。如果是这样,我将如何按名称对数组进行排序?
如果无法做到这一点,你会怎么建议我去完成这个?我不想获取整个Person
实体,因为还有许多其他大的属性,例如images
需要很长时间才能获取。
答案 0 :(得分:2)
您可以通过这种方式获取所需的属性:
NSFetchRequest* fetchRequest = [NSFetchRequest new];
fetchRequest.entity = <person entity description>;
fetchRequest.propertiesToFetch = @[ @"name", @"income" ];
fetchRequest.sortDescriptors = @[ [NSSortDescriptor sortDescriptorWithKey: @"name" ascending: YES] ];
fetchRequest.resultType = NSDictionaryResultType;
NSError* error = nil;
NSArray* personsAttributes = [managedObjectContext executeFetchRequest: fetchRequest error: &error];
peopleAttributes看起来像那样:
[
{ "name" : "Alfred", "income" : 1000 },
{ "name" : "Birgite", "income" : 2000 },
…
]
ARC&amp; amp; amp;文字。您可能需要根据您的需求和编译选项进行定制。