我有一个NSInteger类型的变量..如果我在变量上设置断点并将其输出到日志中,我得到预期值(即0)..但是它看起来非常不同调试器堆栈跟踪变量列表(180821440)..有人可以解释一下发生了什么吗?
我正在使用Apple LLVM 5.1运行Xcode 5.1.1,编译器具有None
优化级别
答案 0 :(得分:0)
来自上面Martin R和Droppy的讨论..我发现这种情况正在发生。
在原始代码中,我从http调用中获取taxiAmount
值,如下所示:
[serverGateway_ getTaxiAmountWithCoordinate:coordBlock onSuccessBlock:^(NSData *responseData)
{
[parser_ parseTaxiAmountWithData:responseData onSuccessBlock:^(NSNumber *taxiAmount)
{
[cityManager_ setTaxiAmount:taxiAmount];
所以我向NSNumber
varialbe
NSInteger
值
- (void)setTaxiAmount:(NSInteger)taxiAmount
{
taxiAmount_ = taxiAmount;
}
在这种情况下,键入po taxiAmount
返回0,而p taxiAmount
返回180520272:
所以导致整个hoopala的原因是将NSNumber视为NSInteger ..明显纠正了这条线
[cityManager_ setTaxiAmount:[taxiAmount integerValue]];
修复了问题(并清除了混乱)