我开始调试一些代码试图找出我的错误。当我尝试 p tlEntries
从调试器我得到
<variable optimized away by compiler>
在 if
上停止时的消息陈述。以下是我的代码:
NSArray *tlEntries = [[NSArray alloc] initWithArray:[self fetchJSONValueForURL:url]];
for (NSDictionary *info in tlEntries)
{
if ([info objectForKey:@"screen_name"] != nil)
NSLog(@"Found %@ in the timeline", [info objectForKey:@"screen_name"]);
}
早期的调试让我有信心 URL 确实返回了一个有效的 NSArray
, 但我不明白为什么 tlEntries
正在被“优化掉”。
最佳答案
正确的解决方案是以如下不同的方式声明变量:
volatile NSArray *tlEntries;
事实上,volatile 关键字的用途就是通知编译器不得以任何方式尝试优化与该变量相关的代码。 亲切的问候。
https://stackoverflow.com/questions/942840/