Objective-C:编译器优化掉的变量

4

我正在尝试运行以下代码:

1. NSURL *checkLicenseURL = [NSURL URLWithString:@"check_license.php?accesskey=&license_key="];
// call server API
2. NSError *err = nil;
3. NSXMLDocument *xmlResult = [[NSXMLDocument alloc] initWithContentsOfURL:checkLicenseURL options:NSXMLDocumentTidyXML error:&err];

然而,在使用gdb查看变量时,在执行第一行后,可以执行以下操作:

p checkLicenseURL

返回值

$1 = <variable optimized away by compiler>

它也导致第3行崩溃。为什么会发生这种情况,我该如何修复?
2个回答

8

如果您不希望进行优化,请直接编译,或者选择“调试”构建(如果您使用向导构建项目)。我不确定在XCode中如何关闭优化,但是为了调试,您可能需要使用以下GCC命令行选项:

-O0 -fno-inline

我正在使用Xcode的“调试”模式,但仍然出现此错误。 - Chetan

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接