in senso tecnico, sì, è più veloce, proprio per questo motivo.
In senso pratico no, non è più veloce. Per prima cosa, la differenza di velocità è minuscola. Stiamo parlando di millisecondi salvati durante la vita dell'intero processo.
I risparmi potrebbero essere maggiori su iPhone, ma è ancora il guadagno di velocità più piccolo che si possa ottenere. Il tuo tempo è molto più speso profilando la tua app in Strumenti e andando dove ti dice e stirando i punti caldi nel tuo codice.
Ed è qui che la Fondazione diventa più veloce: Il tuo tempo.
codice che utilizza la funzione di rilascio automatico della Fondazione se praticabile puoi risparmiare un sacco di tempo e mal di testa, evitando perdite di memoria facilmente evitabili (vale a dire, dimenticando di scrivere o non riuscendo a raggiungere release
messaggi). CF non ha autorelease, quindi devi ricordare esplicitamente di CFRelease
tutto ciò che crei o copi con esso - e quando dimentichi o non riesci a raggiungere quel codice (e intendo lo al momento - parlo per esperienza), spenderai molto più tempo a cercare la perdita di memoria. L'analizzatore statico aiuta, ma non sarà mai in grado di catturare tutto.
(È tecnicamente possibile oggetti autorelease CF, ma il codice per farlo è terribilmente brutto e si sta solo annacquare il tuo guadagno di velocità già minuscola.)
Quindi, attenersi a quanto Foundation possibile. Non esagerare con l'autorelease; anche nel puro Cocoa, ci sono ancora momenti in cui è giustificato il rilascio esplicito di oggetti (per lo più loop stretti), e questo è doppio per Cocoa Touch (dato che iOS ucciderà la tua app se assegni troppa memoria, quindi vorrai rilasciare grandi oggetti come le immagini il prima possibile). Ma di solito, autorelease ti risparmia molto più tempo di quanto CF possa mai salvare i tuoi utenti.
Il motivo non correlato al tempo è che il codice Objective-C, con nomi di argomenti (dal selettore messaggi) integrati con valori, è molto più facile da leggere rispetto al codice basato su funzione C. Questo potrebbe non rendere il tuo lavoro più veloce, ma sicuramente lo rende più divertente.
Quando dici che la velocità è essenziale, intendi velocità di sviluppo o velocità dell'applicazione sviluppata? – JeremyP
Velocità nell'applicazione stessa. – grmartin