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).

questionAnswers(10)

yourAnswerToTheQuestion