gpt4 book ai didi

objective-c - 通过单个属性比较 NSSet

转载 作者:搜寻专家 更新时间:2023-10-30 20:04:21 24 4
gpt4 key购买 nike

我正在尝试确定两个 NSSet 是否“相等”,但不是 isEqualToSet 意义上的。两个集合中的项目是同一个类,但不是同一个对象,甚至不是对同一个对象的引用。他们拥有一个相同的属性 - 让我们称它为“名称”。

我最好的办法是比较这两个集合,先做一个简单的集合计数测试,然后再做一个更复杂的 objectsPassingTest:在一个集合中的每个项目上,确保另一个集合中有同名的项目?我希望存在更简单的方法来处理这种情况。

最佳答案

我有同样的问题,但我需要同时比较多个属性(类 User 具有属性 NameId) .

我通过添加一个返回 NSDictionary 的方法解决了这个问题:

- (NSDictionary *)itemProperties
{
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:self.name forKey:@"name"];
[dict setObject:self.id forKey:@"id"];
return dict;
}

然后像 Kevin Ballard 提到的那样使用 valueForKey::

BOOL userSetsEqual = [[userSet1 valueForKey:@"itemProperties"]
isEqualToSet:[userSet2 valueForKey:@"itemProperties"]];

... 其中 userSet1 和 userSet2 是包含 User 对象的 NSSet。

关于objective-c - 通过单个属性比较 NSSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4116164/

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