Jakie są różnice między NSArray i CCArray? Ponadto, w jakich przypadkach preferowane będzie pierwszeństwo w odniesieniu do programowania gier?różnice między NSArray i CCArray
Odpowiedz
CCArray emuluje NSMutableArray. Jest to wrapper wokół tablicy C (bufor pamięci). Został opracowany i jest używany wewnętrznie przez cocos2d, ponieważ NSMutableArray został uznany za zbyt wolny. Jednak poprawa wydajności jest minimalna. Wszelkie przypadki użycia (cechy) CCArray, których sam cocos2d nie używa, pozostają potencjalnym źródłem problemów, w tym dziwnych i trudnych do debugowania problemów lub strasznych cech wydajności.
Najważniejszym aspektem krytycznym dla wydajności jest czytanie sekwencji sekwencyjnych. W my latest tests jest to obszar, w którym CCArray (już nie?) Przewyższa. Szczególnie szybkie wyliczanie: NSMutableArray jest około 33 razy szybszy!
CCArray jest doskonałym przykładem, dlaczego nie powinno się odkrywać koła, szczególnie jeśli chodzi o klasy pamięci, gdy istnieje już stabilne, sprawdzone i szybkie rozwiązanie (NSMutableArray). Każda przewaga prędkości, którą kiedyś miała, już dawno zniknęła. Pozostaje tylko zachowanie środowiska wykonawczego, z którym nie będziesz chciał sobie poradzić, w tym niektóre bardzo złe właściwości wydajności (wstawianie, szybkie wyliczanie).
Krótka historia: nie używaj CCArray we własnym kodzie! Traktuj CCArray jako wewnętrzną, prywatną klasę, która nie będzie używana w kodzie użytkownika (z wyjątkiem sytuacji, gdy nie da się tego uniknąć, np. Tablicy dzieci).
NSMutableArray to implementacja odniesienia dla tablicy, z której każdy powinien korzystać, ponieważ jest bardzo dobrze przetestowany, udokumentowany i stabilny (zarówno pod względem zachowania i szybkości działania).
Sprawdź to ....
Nadzieja ta pomoc
Ciesz Programowanie
CCArray http://www.cocos2d-x.org/embedded/cocos2d-x/d9/d2e/classcocos2d_1_1_c_c_array.html
W cocos2d-x CCArray jest zmienny, czyli można dodać elementy do tego. Aby utworzyć instancję CCArray bez pojemności, można użyć konstruktora CCArray :: array(). CCMutableArray to kontener oparty na szablonach, który może przechowywać obiekty tego samego typu. Obiekt CCArray przechowuje obiekty jako instancje CCObject, więc należy je przesłać po pobraniu z instancji CCArray
Klasa NSArray zawiera wiele metod zaprojektowanych specjalnie w celu ułatwienia tworzenia i manipulowania tablicami w programach Objective-C.