我想我會爲一些簡單的事情而生氣。NSArray索引超越界限
以下代碼:
NSLog(@"potentialPositions: %@, with count: %i", potentialPositions, [potentialPositions count]);
for (NSUInteger i = 1; i < (choices); i++) {
NSLog(@"i = %i",i);
[self drawAWord:[[currentLevel objectAtIndex:levelLink] objectAtIndex:i] atPoint:[[potentialPositions objectAtIndex:i] CGPointValue] withInitialZoom:FALSE];
}
產生以下結果:
2014-02-15 20:31:54.329 ThesaurusLinks[12446:70b] potentialPositions: (
"NSPoint: {180, 125}",
"NSPoint: {270, 200}",
"NSPoint: {350, 250}",
"NSPoint: {280, 160}"
), with count: 4
2014-02-15 20:31:54.330 ThesaurusLinks[12446:70b] i = 1
2014-02-15 20:31:54.331 ThesaurusLinks[12446:70b] i = 2
2014-02-15 20:31:54.331 ThesaurusLinks[12446:70b] i = 3
2014-02-15 20:31:54.334 ThesaurusLinks[12446:70b] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 3 beyond bounds [0 .. 2]'
顯然有稱爲 「potentialPositions」 陣列中的四個對象。爲什麼它認爲界限只有0..2?它不能在我的DrawAWord方法中,因爲我放了一個NSLOG(結果沒有在上面顯示),它沒有被調用,因爲我= 3.我很難過。
感謝您的任何答案或提示。
[currentLevel objectAtIndex:levelLink] objectAtIndex:i]怎麼樣 - 可能這是崩潰的原因。將其分成兩行以進行更好的調試。 –
你是對的。問題在於另一個數組,當我真的打算使用具有不同索引的數組時,我試圖對兩者都使用i太棘手。謝謝 – Narwhal