NSMutableArray的是ADDOBJECT后空(NSMutableArray is empt

2019-06-27 20:58发布

我想将一个对象添加到一个NSMutableArray:

NSLog(@"Object text: %@", object.text);
NSLog(@"Object: %@", object);
[appdelegate.objects addObject:object];
NSLog(@"Objects array size: %i", [appdelegate.objects count]);

这是输出:

Object text: This is the text
Object: <Object: 0x6e762c0>
Objects array size: 0

这怎么可能,我想补充一个对象,下一行,它仍然是空的。 该NSMutableArray不是nil ,因为那样会引发异常。

有人猜测?

Answer 1:

如果这是它不会引发异常nil 。 你仍然可以消息的nil ,如果它通常响应该消息的对象。 在这种情况下,你只得到0。我想你不分配的数组。 请确保你这样做:

array = [[NSMutableArray alloc] init];

作为一个调试提示,如果你不确定对象的状态,并要确保对象确实存在,并且随时可以使用,使用assert(appdelegate.objects); 如果数组是零,你的代码将停止在该行执行。 如果没有这条线停下来,你就知道存在于内存中的对象。



Answer 2:

你的NSMutableArray确实是几乎可以肯定无效。 它不会引发异常,因为发送任何消息, nil在ObjC是一个空操作,会表现为你所看到的,用零或返回值nil ,等

尝试登录,作为很好的双重检查。



文章来源: NSMutableArray is empty after addObject