2016-03-02 69 views
0

我想从coredata表中获取所有ID。例如,有一个名为Person的表。有一个personId来唯一标识一条记录。我想取所有personId留在Person表。我不知道我该如何做一个查询。在Coredata中,如何获取特定表的所有ID?

SQLite Manager,我可以通过执行以下查询做到这一点:

选择 ZPERSONID FROM ZPERSON;

但我不知道如何为iOS Coredata做到这一点。

在此先感谢!

+1

做一个没有谓语'Person'实体获取。如果你想节省内存,你可以用字典格式指定结果,并指定你想要的属性。 – Avi

+0

它会返回什么?词典? – NSPratik

+1

通常,一个'NSFetchRequest'返回'NSManagedObject's。你可以指定你想要一个字典表示,并且你还可以在字典中指定你想要的特定属性。检查“NSFetchRequest”的类引用。 – Avi

回答

4

希望这将有助于:

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Person"]; 
request.resultType = NSDictionaryResultType; 
request.returnsDistinctResults = YES; 
request.propertiesToFetch = @[@"personID"]; 
NSError *error; 
NSArray *persons = [yourManagedContext executeFetchRequest:request error:&error]; 
+0

我用它,但是当我打印数组时,它包含具有所有字段的托管对象。 – NSPratik

+0

谢谢@Apoc,我已经更新了您的答案,并为'NSFetchRequest'添加了一些关键属性。它为我工作.. – NSPratik

+0

答案接受.. – NSPratik

相关问题