Objective c NSMutableArray在addObject之后为空

Objective c NSMutableArray在addObject之后为空,objective-c,ios,nsmutablearray,Objective C,Ios,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: <Obj

我想将对象添加到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
对象文本:这是文本
对象:
对象数组大小:0
这怎么可能,我添加了一个对象,在下一行,它仍然是空的。
NSMutableArray
不是
nil
,因为这会引发异常


有人猜猜吗?

您的NSMutableArray几乎肯定是空的。它不会引发异常,因为向ObjC中的
nil
发送任何消息都是不可操作的,其行为将与您看到的一样,返回值为零或
nil
,以此类推


尝试将其记录下来,并进行双重检查。

如果它是
nil
,则不会引发异常。如果
nil
对象通常响应该消息,则仍然可以向该对象发送消息。在这种情况下,您将得到0。我认为你没有分配阵列。确保您正在这样做:

array = [[NSMutableArray alloc] init];

作为调试技巧,如果您不确定对象的状态,并且希望确保该对象确实存在并准备好使用,请使用
assert(appdelegate.objects)
如果数组为nil,代码将在此行停止执行。如果它没有停在这一行,那么您就知道该对象存在于内存中。

它确实是空的。使用了一个演示示例,该示例也没有alloc/init数组,但这是一个工作示例。这怎么可能行得通?@TomWebDev-hmm这不可能行得通。它必须被分配到某个地方,也许代码很难识别。您是否有指向该示例的链接?该阵列可能是使用arrayWithCapacity创建的?因为这样您就找不到数组的任何分配。@mohabitar啊,您又对了,但它被分配到了另一个类中。我觉得这很奇怪,但也许这只是我的Java背景谢谢你帮助我!编辑:顺便说一下,本教程: