我无法解决问题。有一个数组NSMutableArray *array
,其中包含以下值(@ "1", @ "2", @ "3", @ "4", @ "5")
。
我删除了第一个元素,并且应该得到一个包含以下值(@ "2", @ "3", @ "4", @ "5")
的数组,其中@"2"
的值为index = 0
。
[array removeObjectAtIndex:0];
NSLog(@"Arr after removal is : %@",array);
在控制台中我得到:
2
3
4
5
但是!当我在调试区域中设置断点时,我看到以下内容:
->[0]=(id)0x00000000
->[1]=(id)0x092701a0 (int)2
->[2]=(id)0x092701b0 (int)3
->[3]=(id)0x092701c0 (int)4
我不明白元素的值是“5”会发生什么,为什么第一个元素没有删除,只是等于零?如果有人遇到这个问题 - 请告诉我 感谢。
答案 0 :(得分:0)
NSArray和相关类的实现不一定在幕后使用传统的C数组。在调试器对象浏览器中检查对象时看到的内容不是您应该依赖的内容。有关详细信息,请参阅this excellent article。
如果从数组中删除该项,并且数组对象的行为类似于已删除的第一个项,则其作业已完成。 如何它不是你的问题。