Blu*_*lue 3 iphone core-data nspredicate nsfetchrequest ipad
如何编写NSPredicate来获取与数组中的值匹配的行?例如:
[NSPredicate predicateWithFormat:@"UserName IN %@",UserIDArray];
Run Code Online (Sandbox Code Playgroud)
如果UserIDArray
包含用户ID,如何获取与此数组中的值匹配的用户名?
让我从这个建议开始.核心数据不是SQL.实体不是表格.对象不是行.列不是属性/属性.核心数据是一个对象图管理系统,可能会或可能不会持久保存对象图,并且可能会或可能不会使用远远落后的SQL来执行此操作.试图用SQL术语来思考核心数据将导致你完全误解核心数据并导致更多的悲伤和浪费时间.
因为Core Data基于对象,所以当你进行提取时,你会得到一个对象数组.要查找特定值,您可以在这些对象中查询其各自属性的值.
假设您有以下实体:
User{
userName:string
userID:string
}
Run Code Online (Sandbox Code Playgroud)
...并且想要找到其userName对应于userID字符串数组的所有用户.您将创建NSFetchRequest并将其实体设置为"User".然后你会使用这样的谓词:
[NSPredicate predicateWithFormat:@"userID IN %@",arrayOfUserIDs];
Run Code Online (Sandbox Code Playgroud)
fetch将返回使用User
实体的属性名称键配置的NSManagedObjects(或子类)数组.要查找userName
数组中每个托管对象的属性值,您可以向对象询问其属性的值,如下所示:
NSString *aUserName=[aUserEntityObject valueForKey:@"userName"];
Run Code Online (Sandbox Code Playgroud)
忘掉你对SQL或类似数据库系统的所有了解.核心数据并不是真正的数据库,因此试图用这些术语来思考它只会让你感到困惑.核心数据都是关于对象的.
归档时间: |
|
查看次数: |
4045 次 |
最近记录: |