self (メソッドが定義されているオブジェクト) のプロパティを変更する再帰メソッドがあります。
エラーが発生します:
...キャッチされない例外 'NSGenericException'、理由: '*** コレクション <__NSArrayM: 0x755f670> が列挙中に変更されました...'
このエラーについて読みましたが、問題の解決策を適用する方法がわかりません。この特定のプロパティの更新と同様に、再帰はソリューションにとって重要です。私はObjective-Cに非常に慣れていないので、おそらく何かが欠けているか、このソリューションの設計が不十分です。
currentPlayer
プロパティですrecursiveMethod
明らかに、エラーを生成している再帰的な方法です
この再帰的なメソッドは、for in
ループ内から呼び出されます。
- (void) recursiveMethod:(id <Team>)team atIndex:(int *)i withPlayer:(id <Player>) {
[self.currentPlayer replaceObjectAtIndex:i withObject:nextPlayer];
if // some conditional that's unimportant to this question
{
// grab another team
// grab another index
// grab another player
[self recursiveMethod:nextTeam atIndex:i withPlayer:nextPlayer];
}
}
詳細の多くは重要ではありません。私はそれを取り除いた。実際には、メソッドが定義されているオブジェクトのプロパティ (この場合は配列) を更新する再帰メソッドにすぎません。