gpt4 book ai didi

ios - NSArray containsObject 方法不一致的结果

转载 作者:行者123 更新时间:2023-11-28 20:17:29 24 4
gpt4 key购买 nike

我有一个名为 selectedUsers 的 NSMutableArray,我正在使用名为 addUser 的方法向其添加对象。被添加的对象通常是 PLManagedUser 类型(一个核心数据管理对象),尽管有时该对象可能是一个字符串。无论如何,如果数组已经包含该对象,我不想将它添加到数组中。这是代码:

- (void)addUser:(id)user withTitle:(NSString *)title {

if (![_selectedUsers containsObject:user]) {
[_selectedUsers addObject:user];
}
}

我注意到,如果我尝试使用上述方法连续添加同一用户,containsObject 会捕获它,并且不会添加重复项。但是,如果我在添加其他对象之后添加相同的用户(具有相同的内存地址),则会添加重复项。

每次我添加一些东西来确认重复的对象在数组中时,我都会打印数组的内容。

我的问题是,是否有任何明显的原因导致 containsObject 在这里无法始终如一地工作?

最佳答案

您需要为一个对象提供将自己标识为与同一类的另一个对象相同的能力,为此您需要实现 isEqual:hash方法。

话虽如此,您问题中的解释与我的预期相反

关于ios - NSArray containsObject 方法不一致的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17451823/

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