0

だから私はこのエラーメッセージを受け取っています

reason: '-[__NSArrayM length]:

この行が私のプログラムで実行されるとき

if (indexInTour == [tourArray count]-1) 

どちらの値も実行時に定義されるため、わかりません。

このコードは、View Controller が 1 つの View Controller からプッシュされると正常に実行されますが、別の View Controller からプッシュされるとクラッシュします。

また、なぜ私は混乱しています

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'
4

1 に答える 1

4

割り当て解除の問題のようです。strongプロパティがまたはとして宣言されていることを確認してくださいretain

編集:

以下のコメントに基づいて、あなたの代わりにがtourArray含まれているようです。NSMutableArrayNSString

于 2012-07-31T17:08:35.853 に答える