我有一个名为 selectedUsers 的 NSMutableArray,我使用名为 addUser 的方法向其中添加对象。添加的对象通常是 PLManagedUser 类型(核心数据托管对象),尽管有时对象可能是字符串。无论如何,如果数组已经包含对象,我不想将它添加到数组中。这是代码:
- (void)addUser:(id)user withTitle:(NSString *)title {
if (![_selectedUsers containsObject:user]) {
[_selectedUsers addObject:user];
}
}
我注意到,如果我尝试使用上述方法背靠背添加同一个用户,containsObject 会捕获它,并且不会添加重复项。但是,如果我在中间添加了其他对象之后添加了相同的用户(具有相同的内存地址),则会添加副本。
每次我添加一些东西以确认重复的对象在数组中时,我都会打印数组的内容。
我的问题是,有什么明显的原因说明 containsObject 不能一直在这里工作吗?