Obj-c NSNotificationCenter Acceso incorrecto

Así que tengo un object CCLayer que tiene un object secundario CCSprite, cuando ocurre una condición (detectada por un método de actualización) se llama a un método del CCSprite que, a su vez, llama al siguiente

[[NSNotificationCenter defaultCenter] postNotificationName:@"mymethod" object:nil]; 

el CCLayer luego se ejecuta

 [node removeFromParentAndCleanup:YES]; 

para que el CCSprite lo elimine. El CCLayer también llamó a lo siguiente en init

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mymethod) name:@"mymethod" object:nil]; 

Ahora 9 veces de cada 10 esto está bien y funciona como se espera, sin embargo, de vez en cuando obtengo un bad_access que apunta a la línea de notificación.

Mi conjetura de leer acerca de otras personas que tienen problemas similares es que se debe a que el object secundario se ha eliminado, pero no sé cómo hacerlo, ya que se llama antes de que se elimine.

¿Podría estar sucediendo algo para retrasar la notificación de publicación que se llama y está terminando siendo llamado después de que se elimina el object o estoy ladrando el tree equivocado?

ACTUALIZAR

Se agregó el código de eliminación anterior, si comento la línea de eliminación y limpieza, no sucede.

Necesitas eliminar el observador. Los observadores no se eliminan automáticamente, por lo que si no los elimina, los acumula en la memory, esa podría ser la razón por la que se rompe más tarde.