我正在尝试将NSNumber传递给UInt32变量,它似乎有效,但是当我记录UInt32的值时,我就陷入了困境。
这就是我的代码。
if ([methodName isEqualToString:@"Manu"]) {
cacheNumber = [cacheValue objectForKey:@"Manus"];
NSLog(@"%@", cacheNumber); // This produces the correct number
}
UInt32 CACHE_VALUE = [cacheNumber intValue];
NSLog(@"%@", CACHE_VALUE); // This is where my thread gets stuck
这是当我尝试单步执行第二个NSLog时产生的消息(因为我在两个日志上都有断点来检查它们的输出)。
单步执行直到退出函数objc_msgSend,没有 行号信息。
任何帮助将不胜感激
答案 0 :(得分:2)
您打印的NSString不是UInt。
NSLog(@"%lu", CACHE_VALUE); // This is where my thread gets stuck
答案 1 :(得分:0)
当您记录整数而不是对象时,即。一个NSString,你应该使用%d(十进制)占位符而不是%@(object)。
NSLog(@"Value: %d", CACHE_VALUE);