我只是想知道removeobject和removeobjectatindex之间的区别。我理解removeobjectatindex删除数组的特定索引处的对象,但我不明白的是removeobject的作用。
答案 0 :(得分:2)
-removeObject:
将要从集合中删除的对象作为参数。
答案 1 :(得分:0)
removeObject 会从数组中删除该对象的所有匹配项。 删除对象方法内部使用两种方法。它使用indexOfObject:两个定位给定对象的索引。然后它使用removeObjectAtIndex:方法二只是删除那些对象。当您希望两个删除多个类似对象时,此方法很有用,否则您可以直接使用removeObjectAtIndex:方法。
答案 2 :(得分:0)
removeObjectAtIndex
方法只会从数组中移除一个对象(在您指定的索引处)。
removeObject
方法将删除通过isEqual
测试的所有对象。这意味着可能会移除许多对象。它还意味着您希望删除的对象可能不会,具体取决于isEqual
的实现方式。默认情况下,isEqual
方法只比较指针(如果两个对象具有相同的地址,则它们相等)。一些课程,例如NSString,覆盖isEqual
以进行更高级别的比较。所以removeObject
有时候看起来有点气质。
来自removeObject
此方法使用indexOfObject:来查找匹配项,然后使用removeObjectAtIndex:删除它们。因此,匹配是根据对象对isEqual:消息的响应来确定的。如果数组不包含anObject,则该方法无效(尽管它会产生搜索内容的开销)。
答案 3 :(得分:0)
NSMutableArray *a=[[NSMutableArray alloc]initWithObjects:@"4",@"5",@"sad", nil];
[a removeObject:@"4"]; // here it will check whether array contains a variable 4 in the array if array has it it will remove that object.
NSLog(@"%@",a);
[a removeObjectAtIndex:0]; // this will remove object at index 0
NSLog(@"%@",a);
[a removeAllObjects]; // this will remove all objects in array
NSLog(@"%@",a);