我现在正面临由NSNumber的objCType引起的情况,即numberWithInt。
当我从NSUserDefault检索它,并检查它的类型时。已触发EXC_BAD_ACCESS。
这是代码:
NSNumber* number = [uD objectForKey:@"some_key"];
NSLog(@"Data Type %@",[number objCType]);//This Line fired EXC_BAD_ACCESS
uD代表在代码另一部分初始化的UserDefault对象。
从numberWithLong创建NSNumber时不存在此问题
最佳答案
objCType
返回一个C字符串,因此您需要在格式字符串中使用%s
而不是%@
。像这样:
NSLog(@"Data Type %s", [number objCType]);
请注意,您可能想通过执行以下操作来防止
nil
的number
值:NSLog(@"Data Type %s", [number objCType] ?: "");