我有一个递归方法可以更改 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];
}
}
很多细节都不重要。我把它剥掉了;实际上,它只是一个递归方法,它将更新定义该方法的对象的属性(在本例中为数组)。