XCode调试器奇怪的行为

时间:2013-04-15 21:18:51

标签: objective-c xcode debugging

我有一个我试图调试的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;

2 个答案:

答案 0 :(得分:3)

[命名不佳 - 不应该使用get前缀] getInteger:方法执行任何操作,例如将索引推进到data吗?

getInteger:是否返回NSNumber?

getInteger:如何实施?

只有那段代码,很难说。

答案 1 :(得分:1)

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