NSString.length 导致崩溃(NSInvalidArgumentException)
NSString.length causes crash (NSInvalidArgumentException)
我有一个 iPad 应用程序(XCode 6.1.1,iOS 8.1,ARC)当我在 8.1 模拟器上 运行 它时,应用程序崩溃比较字符串的长度。这已经 运行ning 一年多了,昨天停止了。这是代码:
这是 .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);
这是我遇到的错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0xb000000000003203'
运行在 7.1 模拟器和 iPad 运行ning iOS 8.1 下 运行 没问题。我不明白 where/why NSCFNumber 是 "in the picture".
我的问题是:是否知道是什么原因造成的(在我提交 RADAR 之前?)
您在某个地方为 shopCloseHour 分配了一个 NSNumber,当从 json 分配值时可能会发生这种情况。检查
if ([shopCloseHour isKindOfClass:[NSString class]]) {
// this is a string …
}
我有一个 iPad 应用程序(XCode 6.1.1,iOS 8.1,ARC)当我在 8.1 模拟器上 运行 它时,应用程序崩溃比较字符串的长度。这已经 运行ning 一年多了,昨天停止了。这是代码:
这是 .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);
这是我遇到的错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0xb000000000003203'
运行在 7.1 模拟器和 iPad 运行ning iOS 8.1 下 运行 没问题。我不明白 where/why NSCFNumber 是 "in the picture".
我的问题是:是否知道是什么原因造成的(在我提交 RADAR 之前?)
您在某个地方为 shopCloseHour 分配了一个 NSNumber,当从 json 分配值时可能会发生这种情况。检查
if ([shopCloseHour isKindOfClass:[NSString class]]) {
// this is a string …
}