Ответ 1
CCArray эмулирует NSMutableArray. Это оболочка вокруг массива C (буфер памяти). Он был разработан и используется внутри cocos2d, потому что NSMutableArray считался слишком медленным. Однако улучшение производительности минимально. Любые варианты использования (особенности) CCArray, которые не использует cocos2d, остаются потенциальным источником проблем, в том числе странными и трудными для отладки проблем или ужасных характеристик производительности.
Наиболее важным критически важным аспектом является чтение последовательного массива. В моих последних тестах область, в которой CCArray (больше?) Превосходит. В частности, быстрое перечисление: NSMutableArray примерно в 33 раза быстрее!
CCArray - прекрасный пример, почему нельзя изобретать колесо, особенно когда речь идет о классах хранения, когда есть уже стабильное, проверенное и быстрое решение (NSMutableArray). Любое преимущество в скорости, которое, возможно, когда-то было, давно прошло. Остается поведение, с которым вы не захотите работать, включая некоторые крайне плохие характеристики производительности (вставка, быстрое перечисление).
Короче говоря: не использовать CCArray в вашем собственном коде! Относитесь к CCArray как к внутреннему, закрытому классу, который не должен использоваться в коде пользователя (кроме случаев, когда это неизбежно, т.е. дочерний массив).
NSMutableArray - это эталонная реализация массива, которую все должны использовать, потому что она очень хорошо протестирована, документирована и стабильна (как с точки зрения поведения и скорости выполнения).