Evitando que “NSArray sofreu uma mutação ao ser enumerado”
eu tenho umNSMutableArray
que armazena mousejoints para uma simulação de física Box2d. Ao usar mais de um dedo para jogar, receberei exceções informando
NSArray sofreu uma mutação ao ser enumerado
Eu sei que isso é porque eu estou excluindo objetos da matriz ao mesmo tempo, enumerando através dele, invalidando o enum.
O que eu quero saber é qual é a melhor estratégia para resolver isso daqui para frente? Eu vi algumas soluções online:@synchronized
, copiando a matriz antes de enumerar ou colocar a junta de toque em uma matriz de lixo para exclusão posterior (que não tenho certeza se funcionaria, porque preciso remover o mousejoint da matriz logo após removê-lo do mundo).