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