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