iPhone uso de mutexes con solicitudes de URL asincrónicas
Mi cliente de iPhone tiene mucha participación en solicitudes asíncronas, muchas veces modificando constantemente colecciones estáticas de diccionarios o matrices. Como resultado, es común para mí ver estructuras de datos más grandes que tardan más en recuperarse de un servidor con los siguientes errores:
*** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <NSCFArray: 0x3777c0> was mutated while being enumerated.'
Esto generalmente significa que dos solicitudes al servidor vuelven con datos que intentan modificar la misma colección. Lo que estoy buscando es un tutorial / ejemplo / comprensión de cómo estructurar adecuadamente mi código para evitar este error perjudicial. Creo que la respuesta correcta son los mutexes, pero nunca los he usado personalmente todavía.
Este es el resultado de realizar solicitudes HTTP asincrónicas con NSURLConnection y luego usar NSNotification Center como medio de delegación una vez que se completan las solicitudes. Al desencadenar solicitudes que mutan los mismos conjuntos de recopilación, obtenemos estas colisiones.