如何在iOS Core Data中获取属性数组?

时间:2012-06-21 14:09:03

标签: objective-c ios core-data

我正在为iOS应用程序使用CoreData(NSManagedObject,UIManagedDocument),我想知道是否可以获取属性数组。

例如,假设我的数据库中有Person个实体,而每个Person都有一个名为income的属性和一个名为name的名称。假设我的数据库中有多个Person s。是否可以获取包含整个数据库所有收入的数组? (每个人的收入作为条目的数组)。如果是这样,我将如何按名称对数组进行排序?

如果无法做到这一点,你会怎么建议我去完成这个?我不想获取整个Person实体,因为还有许多其他大的属性,例如images需要很长时间才能获取。

1 个答案:

答案 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;文字。您可能需要根据您的需求和编译选项进行定制。