NSArray initWithObjects:没有加载

时间:2009-03-27 06:16:08

标签: iphone objective-c

作为测试,我在applicationDidFinishLaunching的第一行中执行以下操作:

NSArray *list=[[NSArray alloc] initWithObjects:@"Andy",@"Erik",@"Aaron",nil];

在线运行后,我在数组中有零个对象。我在代码路径中进一步做了这个,但想要消除任何影响,以确保我的语法是正确的。我用NSMutableArray得到了相同的结果。在调试器中,我将鼠标悬停在数组名称上以查看它是否有任何值。

当我在下面的行中鼠标移过计数时,我看到“可变的优化awa ...摘要”:

int count = [list count];

为什么数组没有填充以及为什么count不返回整数的任何建议?

1 个答案:

答案 0 :(得分:6)

发生的事情是您没有使用'count'变量,编译器正在对此进行优化。

1)尝试在调试而不是发布模式下运行。调试模式不会优化输出,因此您应该看到计数变量在调试器中鼠标悬停时给出正确的结果。您可以通过单击xcode左上角的下拉栏将活动配置更改为从发布调试。

2)在代码中使用'count'变量。请注意,在发布版本中,如果编译器想要执行此操作,则可能无序发生。例如,如果你的计数初始化语句在某处,并且你在代码中使用了'count',那么'count'可能直到实际使用'count'之前才会被设置。