我现在正面临由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] ?: "");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句