jestem rozważa wprowadzenie:Jaka jest kara za wydajność korzystania z programu KindOfClass w Objective C?
if ([myInstance isKindOfClass:[SomeClass class]]) { do something...}
do kawałka kodu, który zostanie wywołany dość często. Czy wprowadzę znaczącą karę za wyniki? W Objective C istnieje szybszy sposób oceny, czy dana instancja obiektu ma określony typ klasy? Na przykład, czy poniższe jest szybsze? (Zdaję sobie sprawę, test jest nieco inna)
if (myInstance.class == [SomeClass class]) { do something else...}
Co wyniki swojej profilowania powiedzieć? –
Nie zrobiłem jeszcze żadnego profilowania; to mój kolejny krok. Miałem nadzieję, że uda mi się znaleźć jakąś dokumentację wyjaśniającą ukrytą magię na zajęciach w Celu C, zanim przejdę do testowania ślepych perfów. Jednak nie znalazłem nic, więc zamierzam po prostu wypróbować różne permutacje. Wszelkie sugestie dotyczące tego, jak inaczej mogę zidentyfikować typ klasy danej instancji? – durcicko
Nie ma czegoś takiego jak ślepe testowanie wydajności ... tylko ślepa optymalizacja! Ponadto, środowisko wykonawcze Obj-C decyduje, która metoda wywoływać w oparciu o klasę obiektu za każdym razem, gdy wywoływana jest metoda, więc skorzystaj z tego, umieszczając metodę {do something ...} w metodzie klasy, która Cię interesuje. – codewarrior