あなたは間違ってやっています:
NSLog(@"m_datasource %d and coord.color %d",[m_dataSource.colors count],[coord.colorIndexes count]);
cell.spotColor = [m_dataSource.colors objectAtIndex: [coord.colorIndexes lastObject] intValue];
上記の最後のオブジェクトcoord.colorIndexes
が「100」の場合は、statemnt を確認してください。次のようになります。
cell.spotColor = [m_dataSource.colors objectAtIndex: 100];
しかし、m_dataSource.colors
配列には60個のオブジェクトしか含まれていないため、配列がインデックス例外からスローされます。
コードを以下のスニペットに置き換えます。
// get array count and substract with 1 - so it will retrun you last index of coord.colorIndexes array
cell.spotColor = [m_dataSource.colors objectAtIndex: [coord.colorIndexes count]-1];
これが配列の概念について簡単に説明するのに役立つことを願っています。