0

我有一个递归方法可以更改 self 的属性(定义该方法的对象)。

我得到错误:

...未捕获的异常 'NSGenericException',原因:'*** Collection <__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

2

只需阅读异常消息:

NSArrayM [...] 在枚举时发生了变异。

你不能那样做。

于 2013-06-05T21:50:33.840 回答