所以我收到此错误消息
reason: '-[__NSArrayM length]:
在我的程序中执行此行
if (indexInTour == [tourArray count]-1)
我不明白,因为两个值都是在运行时定义的。
当从一个视图控制器推送视图控制器时,此代码运行正常,但是当从另一个视图控制器推送视图控制器时崩溃。
另外,我很困惑为什么
NSLog(@"%i", [tourArray count]);
工作正常,而
if (indexInTour == [tourArray count]-1) // Crashes here
不
其他一些信息:
代码:
NSLog(@"%i", [tourArray count]);
NSLog(@"%i", indexInTour);
NSLog(@"%@", NSStringFromClass([tourArray class]));
// NSLog(@"%@", tourArray);
if (indexInTour == [tourArray count]-1) // Crashes here
输出:
2012-07-31 09:46:10.268 XXX[13374:11603] 7
2012-07-31 09:46:10.269 XXX[13374:11603] 2
2012-07-31 09:46:10.270 XXX[13374:11603] __NSArrayM
完整的错误消息:
-[__NSArrayM length]: unrecognized selector sent to instance 0x7a97f60
2012-07-31 09:50:26.696 XXX[13456:11603] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM length]: unrecognized selector sent to instance 0x7a97f60'
答案 0 :(得分:4)
看起来像释放问题。确保您的媒体资源声明为strong
或retain
。
编辑:
根据以下评论,您的tourArray
似乎包含NSMutableArray
而不是NSString
。