Sto pensando di introdurre:Qual è la penalità delle prestazioni dell'uso di isKindOfClass nell'obiettivo C?
if ([myInstance isKindOfClass:[SomeClass class]]) { do something...}
in un pezzo di codice che viene chiamato abbastanza spesso. Introdurrò una significativa penalizzazione delle prestazioni? In Objective C, c'è un modo più rapido per valutare se una data istanza di un oggetto è di un certo tipo di classe? Ad esempio, è il seguente più veloce? (Mi rendo conto che il test è un po 'diversa)
if (myInstance.class == [SomeClass class]) { do something else...}
Cosa i risultati della vostra profiling vi dico? –
Non ho ancora effettuato alcuna analisi; questo è il mio prossimo passo. Speravo di trovare qualche documentazione che spiegasse la magia sottostante per le classi nell'Objective C prima di passare al cieco perf testing. Tuttavia, non ho trovato nulla, quindi ho intenzione di provare diverse permutazioni dopo. Qualche suggerimento su come altro potrei identificare un tipo di classe di una data istanza? – durcicko
Non esistono test di prestazioni ciechi ... solo ottimizzazione cieca! Inoltre, il runtime Obj-C decide quale metodo chiamare in base alla classe dell'oggetto ogni volta che chiami un metodo, quindi approfittane mettendo il {do something ...} in un metodo sulla classe che ti interessa – codewarrior