gpt4 book ai didi

iphone - 从不在集合中的核心数据中获取对象

转载 作者:太空狗 更新时间:2023-10-30 03:11:25 25 4
gpt4 key购买 nike

我正在尝试从不在给定集合中的核心数据中获取对象,但我无法让它工作。

例如,假设我们有一个名为 User 的核心数据实体,它具有一些属性,例如 userName、familyName、givenName 和 active。给定一个表示一组用户名的字符串数组,我们可以轻松地获取与该用户名列表对应的所有用户:

NSManagedObjectContext *moc = [[NSManagedObjectContext alloc] init];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"User"
inManagedObjectContext:moc];
[request setEntity:entity];

NSArray *userNames = [NSArray arrayWithObjects:@"user1", @"user2", @"user3", nil];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userName IN %@", userNames];
[request setPredicate:predicate];
NSArray *users = [moc executeFetchRequest:request error:nil];

但是,我想获取该集合的补集,即,我想要核心数据中没有在 userNames 数组中指定的用户名的所有用户。有谁知道如何解决这个问题?我认为在谓词 (即“userName NOT IN %@”) 中添加一个 “NOT” 就足够简单了,但是 Xcode 抛出一个异常说明谓词无法解析格式。我还尝试使用可用于提取请求的谓词生成器,但没有成功。该文档也不是特别有用。建议?注释?感谢您的帮助:)

最佳答案

为了找到不在你的数组中的对象,你所要做的就是这样:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (userName IN %@)", userNames];

那应该返回所有对象的请求,没有你指定的对象

关于iphone - 从不在集合中的核心数据中获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6181960/

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