-1

コンテキスト:私は現在、iTunes U でスタンフォード大学の最新の cs193p コースの課題 2 に取り組んでいます。単純に解決策を調べることは避けようとしていますが、行き詰っています。

問題:次のコードの場合:

for (Card *c in self.chosenCards) { // for debugging purposes
    NSLog(@"Card: %@ index: %d", c.contents, [self.chosenCards indexOfObject:c]);
}

[self.chosenCards removeObjectAtIndex:0];

私は次の結果を得続けます:

2014-11-30 14:58:11.487 Matchismo[12262:60b] Card: 5clubs♦️ index: 0
2014-11-30 14:58:11.487 Matchismo[12262:60b] Card: 6clubs♣️ index: 1
2014-11-30 14:58:23.714 Matchismo[12262:60b] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'

どうして ): ?明らかに、私の配列にはインデックス 0 のオブジェクトが含まれており、明らかに配列の境界は [0 .. 0] を超えています。

4

1 に答える 1

0

ほとんどの場合、問題は別の場所にあります (エラーで報告されたインデックスは1結局のところです)。例外の原因となっている行を特定するために、例外ブレークポイントを設定してみてください(そして、将来の同様の問題で多くの時間を節約し、混乱を招く可能性があります :))

于 2014-11-30T15:50:39.310 に答える