0

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];
         }
    }

詳細の多くは重要ではありません。私はそれを取り除いた。実際には、メソッドが定義されているオブジェクトのプロパティ (この場合は配列) を更新する再帰メソッドにすぎません。

4

1 に答える 1