addObject后NSMutableArray是空的

我想添加一个对象到一个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 ,因为这会引发exception。

有人猜测?

如果它是nil它不会引发例外。 如果通常对这个消息作出响应,你仍然可以发送一个nil对象。 在这种情况下,你只会得到0.我想你没有分配数组。 确保你这样做:

 array = [[NSMutableArray alloc] init]; 

作为一个debugging提示,如果你不确定对象的状态,并想确保对象确实存在并准备好使用,请使用assert(appdelegate.objects); 如果数组为零,则代码将在此行停止执行。 如果它不停在这一行,那么你知道这个对象存在于内存中。

你的NSMutableArray几乎肯定是null。 它不会引发exception,因为在ObjC中向nil发送任何消息都是空操作,并且会像您所看到的那样执行,返回值为零或nil等。

尝试logging,以及仔细检查。