Jam*_*ore 6 iphone cocoa cocoa-touch core-data nspredicate
我在Core Data中存储了一些数据,如下所示:
| 名字| 标识符| other_stuff |
我需要在UITableView中显示名称,但我只想显示具有唯一名称 - 标识符对的名称.因此对于:
John | 3 | foo
Betty | 4 | foo
Betty | 4 | bar
Run Code Online (Sandbox Code Playgroud)
我只希望查询返回John,Betty.像"从表中选择唯一名称,标识符"之类的东西.
用NSPredicate做任何方法,或者我需要将去掉的字段倒入另一个容器中,然后搜索一下?
Bar*_*ark 10
Core Data是一个对象图管理框架,它恰好(可选)将该对象图持久化到SQL持久性存储.无法查询对象属性,只查询对象.您可以从结果数组中查询实例:
NSArray *instances; //from -[NSManagedObject executeFetchRequest:error:]
NSArray *uniqueNames = [instances valueForKeyPath:@"@distinctUnionOfObjects.name"];
Run Code Online (Sandbox Code Playgroud)
假设名称在name属性中.
如果你想要的是每个用户有一个名字,一个id和多个{foo,bar,...},那么你应该将情况建模为具有名称和id的用户实体以及与实体的多对多关系代表foo/bar/etc.
您可以@distinctUnionOfObjects在"键值编码指南" 的" 集合运算符"部分中找到有关(和其他集合运算符)的更多信息.