gpt4 book ai didi

iphone - 如何将 "IN"运算符与谓词一起使用

转载 作者:行者123 更新时间:2023-12-03 19:37:06 29 4
gpt4 key购买 nike

如何编写 NSPredicate 来获取与数组中的值匹配的行?例如:

[NSPredicate predicateWithFormat:@"UserName IN %@",UserIDArray];

如果UserIDArray包含用户ID,如何获取与该数组中的值匹配的用户名?

最佳答案

让我从这个建议开始。核心数据不是 SQL。实体不是表。对象不是行。列不是属性/属性。 Core Data 是一个对象图管理系统,它可能会也可能不会持久化对象图,并且可能会也可能不会在幕后使用 SQL 来执行此操作。尝试用 SQL 术语来思考 Core Data 将会导致您完全误解 Core Data,并导致很多悲伤和浪费时间。

因为 Core Data 基于对象,所以当您执行提取时,您会返回一个对象数组。要查找特定值,您可以查询这些对象以获取其各自属性的值。

假设您有以下实体:

User{
userName:string
userID:string
}

...并且想要找到其 userName 对应于 userID 字符串数组的所有用户。您将创建一个 NSFetchRequest 并将其实体设置为“User”。然后你可以使用这样的谓词:

[NSPredicate predicateWithFormat:@"userID IN %@",arrayOfUserIDs];

提取将返回一个 NSManagedObjects(或子类)数组,该数组配置有 User 实体的属性名称键。要查找数组中每个托管对象的 userName 属性的值,您可以向该对象询问其属性的值,如下所示:

NSString *aUserName=[aUserEntityObject valueForKey:@"userName"];

忘记关于 SQL 或类似数据库系统的所有知识。 Core Data 并不是真正的数据库,因此尝试用这些术语来思考它只会让您感到困惑。核心数据都是关于对象的。

关于iphone - 如何将 "IN"运算符与谓词一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5538186/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com