2009-12-11 92 views
6

我有存儲在覈心數據的一些數據,看起來像:您可以指定與NSPredicate「從......選擇唯一的名稱」?

|名稱|標識符| other_stuff |

我需要在一個UITableView中顯示的名字,但我只想要顯示具有獨特的名稱標識符對的名稱。因此適用於:

John | 3 | foo 
Betty | 4 | foo 
Betty | 4 | bar 

我只希望查詢返回John,Betty。就像「選擇唯一名稱,來自表格的標識符」。

任何方式與NSPredicate做到這一點,或者我需要將de-duped域倒入不同的容器,然後搜索?

回答

10

核心數據是一個對象圖表管理框架,恰好(可選地)持續該對象圖到SQL持久存儲中。沒有辦法查詢對象屬性,只是對象。您可以查詢實例然後,從結果數組:

NSArray *instances; //from -[NSManagedObject executeFetchRequest:error:] 
NSArray *uniqueNames = [instances valueForKeyPath:@"@distinctUnionOfObjects.name"]; 

假設名稱是name財產。

如果你想讓每個用戶都有一個名字,一個id和多個{foo,bar,...},那麼你應該把這個情況建模爲一個用戶實體,名字和id以及to-many與表示foo/bar /等的實體的關係。

關鍵值編碼指南的Collection Operators部分中提供了有關@distinctUnionOfObjects(和其他收集操作員)的更多信息。

相關問題