0

次の場所に、テーブルビューから書き込むグローバル変数があります。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

選択されている行にグローバルな eventID 変数 ([NSNumber numberWithInt]) を設定しています。

[[GlobalData sharedGlobalData]setEventId:[NSNumber numberWithInt:indexPath.row]];

次に、この変数を使用して配列内のインデックスにアクセスしています。ただし、奇妙な結果が得られます。eventID変数をNSLogすると、「0」が表示されます。これは正しいです。テーブルの最初の行を選択しています。

ただし、インデックスのオブジェクトとして eventID 変数を使用する場合:

event = [[venue venueEventList]objectAtIndex:[[GlobalData sharedGlobalData]eventId]];

アプリが次のエラーでクラッシュしています:

* Terminating app due to uncaught exception 'NSRangeException', reason: '* -[__NSArrayM objectAtIndex:]: index 163756576 beyond bounds [0 .. 4]' * First throw call stack: (0x1b8f012 0x1600e7e 0x1b310b4 0x5139 0x6261c7 0x626232 0x6264da 0x63d8e5 0x63d9cb 0x63dc76 0x63dd71 0x63e89b 0x63ee93 0xf3e83f7 0x63ea88 0x99ae63 0x98cb99 0x626dd2 0xf3e012c 0x32343 0x5f4285 0x5f44ed 0xffe5b3 0x1b4e376 0x1b4de06 0x1b35a82 0x1b34f44 0x1b34e1b 0x19d87e3 0x19d8668 0x544ffc 0x29cd 0x28f5)

確かに eventID 変数は 0 なので、配列がインデックス 163756576 でアクセスされているのはなぜですか

どんな助けでも素晴らしいでしょう!

4

1 に答える 1