Ok, first of all, it is fine, i wont call autorelease in destructor
BUT, couldnt it be the issue is actually that the array that you are looping over is getting modified while its iterated?
Because you could fix it by copying the array into a temp array and iterating on the temporary array. This would make it a safer API.
I also think this problem exists in CCNotificationCenter.
Or do you know for sure that is always safe with CCArray?