iphone - 变量被编译器优化掉

我开始调试一些代码试图找出我的错误。当我尝试 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/

相关文章:

java - 如何重写输入循环以不包含代码重复?

PHP 错误 : Warning: Cannot modify header information

iphone - 检测 UITableView 中的触摸和按住

c# - 如何使用 C# 将字符串中的 "http:"替换为 "https:"?

email - 为什么 CR 和 LF 在电子邮件中一起出现如此重要?

csv - 如何将密码和登录数据导入 firefox?

perl - 'mv' 系统命令的 Perl 等价物是什么?

c# - 获取图标 128*128 文件类型 C#

python - python中的快速过滤方法

php - 我可以获取最初在包含文件中调用的 PHP 文件的路径吗?