gpt4 book ai didi

ios - 核心数据和谓词

转载 作者:行者123 更新时间:2023-12-01 17:57:00 25 4
gpt4 key购买 nike

假设我有一个实体部门,该部门与人有一对多关系。我希望能够搜索“体育部”,以查看斯科特·奥尔森(Person Scott Olsen)是否在那里工作。 Person Scott Olsen不是唯一的(可能有3个Scotts在3种不同的Department中工作)。

如何搜索Department Sports来找到在那起作用的Person Scott Olsen,却找不到其他Scotts?

我能想到的基本方法是:

for (Person *person in sports.persons) {
if ([person.name isEqualToString:@"Scott Olsen"]) {
// found him!
}
}

要么:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY persons.name == 'Scott Olsen'"];

Department *department = [Department MR_findFirstWithPredicate:predicate];

但是我不确定第二个是否返回在 Departement Sports中工作的Scott Olsen。我想我可以检查一下
if ([department.name isEqualToString:@"Sports"])

但是似乎应该有一个更好的方法来使用NSPredicate来做到这一点,但我无法弄清楚。

最佳答案

这是你想要的?

NSString *name = @"Scott Olsen";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name = %@", name];
NSSet *filtered = [sports.persons filteredSetUsingPredicate:predicate];

或(发布上述代码后,您的问题已更改):
NSString *name = @"Scott Olsen";
NSString *department = @"Sports";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name = %@ AND department = %@",
name, department];
Person *person = [Person MR_findFirstWithPredicate:predicate];

(假设您在“人”与“部门”之间存在反关系“部门”)。

关于ios - 核心数据和谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15642341/

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