1

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

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

如果这是不可能的,你会建议我如何去完成这个?我不想获取整个Person实体,因为还有许多其他大型属性,例如images需要很长时间才能获取。

4

1 回答 1

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];

personAttributes 看起来像这样:

[
    { "name" : "Alfred", "income" : 1000 },
    { "name" : "Birgite", "income" : 2000 },
    …
]

带有 ARC 和文字的代码。您可能需要根据您的需要和编译选项对其进行定制。

于 2012-06-21T14:48:24.317 回答