NSArray在分配后变为无效

时间:2011-06-02 04:42:36

标签: objective-c memory-management nsarray

这是一个奇怪的问题,但我的两个NSArray在分配后变得无效。我进入调试并在分配期间验证了这一点。截图显示了一切。我必须在某个地方错过一个愚蠢的错误 - 有人可以帮忙!

Link to Screenshot

谢谢!

2 个答案:

答案 0 :(得分:2)

您需要在分配时将-retain消息发送到阵列,如下所示:

ivar = [[NSArray arrayWithObjects:@"a", @"b", @"c", nil] retain];

它们超出范围的原因是因为-arrayWithObjects:返回一个自动释放的对象。因此,您必须向其发送-retain消息。

另外,请不要忘记-release方法中-dealloc这些对象。

答案 1 :(得分:0)

使用-retain- dude。这将解决您的问题。