1

我有一个我正在尝试调试的 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;
4

2 回答 2

3

[名称不佳 - 不应该有get前缀]getInteger:方法是否会执行诸如将索引推进到 的任何操作data

还是getInteger:返回一个 NSNumber?

如何getInteger:实施?

仅凭该代码,很难说。

于 2013-04-15T21:43:46.413 回答
1

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

于 2013-04-16T13:59:31.773 回答