我想将一个对象添加到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
,因为这会引发异常。
有人在猜吗?
答案 0 :(得分:10)
如果是nil
,则不会引发异常。如果nil
对象通常响应该消息,您仍然可以发送消息。在这种情况下,你只会得到0.我认为你没有分配数组。确保你这样做:
array = [[NSMutableArray alloc] init];
作为调试提示,如果您不确定对象的状态并希望确保对象确实存在并且可以使用,请使用assert(appdelegate.objects);
如果数组为nil,则代码将为停止在此行执行。如果它没有在此行停止,那么您就知道该对象存在于内存中。
答案 1 :(得分:0)
你的NSMutableArray确实几乎肯定是null。它不会引发异常,因为在ObjC中向nil
发送任何消息都是无操作,并且会像您看到的那样,返回值为零或nil
等。< / p>
尝试记录,以便仔细检查。