繁体   English   中英

XCode调试器奇怪的行为

[英]XCode debugger weird behavior

我有一个我试图调试的iPhone应用程序。

我的一个方法只在执行代码时才返回错误的值,在调试器中它很好。

int finalResponse = 0;
finalResponse = [data getInteger:@"final_response"];

然后在调试器中

p finalResponse  
(int) $0 = 130450628

p [data getInteger:@"final_response"]
(int) $1 = 0

我期待0值,另一个是垃圾。 我不明白为什么它产生不同的结果取决于我如何执行该函数。

编辑:

getInteger返回一个int它使用一个底层的c库,它返回一个(const void *),就像这样

int* value = get_dictionary_value("final_response", dictionary);
int val = (int) *value;
return val;

[命名不好 - 不应该有get前缀] getInteger:方法是否可以执行任何操作,例如将索引推送到data

或者getInteger:返回一个NSNumber?

getInteger:是如何实现的?

只有那些代码,很难说。

当我使用发布版本进行调试时,有时会遇到奇怪的调试行为; 确保您使用正确的构建阶段进行调试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM