2016-03-02 65 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

相關問題