作为测试,我正在执行以下作为applicationDidFinishLaunching中的第一行:
NSArray *list=[[NSArray alloc] initWithObjects:@"Andy",@"Erik",@"Aaron",nil];
在该行运行后,我在数组中有零个对象.我在代码路径中进一步做了这个,但想要消除任何影响,以确保我的语法是正确的.我用NSMutableArray得到了相同的结果.在调试器中,我将鼠标悬停在数组名称上以查看它是否具有任何值.
当我在下面的行中鼠标移过计数时,我看到"可变的优化awa ...摘要":
int count = [list count];
任何建议为什么数组不填充以及为什么count不返回整数的建议?
发生的事情是你没有使用'count'变量,编译器正在优化它.
1)尝试在调试而不是释放模式下运行.调试模式不会优化输出,因此您应该看到计数变量在调试器中鼠标悬停时给出正确的结果.您可以通过单击xcode左上角的下拉栏将活动配置更改为从发布调试.
2)在代码中使用'count'变量.请注意,在发布版本中,如果编译器想要执行此操作,则可能无序发生.例如,如果你的计数初始化语句在某处,并且你在代码中使用了'count',那么'count'可能不会在实际使用'count'之前设置.