我有一个iPad应用程序(XCode 6.1.1,iOS 8.1,ARC),当我在8.1模拟器上运行它时,应用程序崩溃比较字符串的长度。这已经运行了一年多,并于昨天停止。这是代码:
这是.h文件中的代码:
@property NSString *shopOpenHour;
@property NSString *shopCloseHour;
这是.m文件中的代码:
@synthesize shopOpenHour;
@synthesize shopCloseHour;
和
if(shopOpenHour.length == 0 || shopCloseHour.length == 0) {
这也会导致崩溃:
NSLog(@"\n\nlength test: %d", (int)shopCloseHour.length);
这是我得到的错误:
***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [__ NSCFNumber长度]:无法识别的选择器发送到实例0xb000000000003203'
在7.1模拟器和运行iOS 8.1的iPad下运行时运行正常。我不明白NSCFNumber在哪里/为什么“在图片中”。
我的问题是:是什么导致了这个问题(在我提交RADAR之前?)
答案 0 :(得分:2)
在某个地方你已经为shopCloseHour分配了一个NSNumber,当从json分配值时会发生这种情况。查看
if ([shopCloseHour isKindOfClass:[NSString class]]) {
// this is a string …
}