2012-04-23 17 views
6

Sto memorizzando i blocchi mentre il servizio Web si interrompe e comunica con il mio server. Pertanto sto usando [myBlock copy] per mantenere un riferimento al mio blocco.Come rilasciare un blocco

Dopo aver ottenuto i miei dati ed eseguito il blocco, si chiama [myBlock release] oppure si utilizza Block_release(myBlock)? Posso trovare un riferimento ad entrambi.

+0

non hanno alcuna differenza –

risposta

9

Block_release() è lì per quando si utilizzano solo blocchi in C e non in Objective-C.

Quando si utilizza Objective-C è possibile utilizzare i metodi release e copy per rendere il proprio codice più simile al resto dell'ObjC.

Immagino che entrambi facciano esattamente la stessa cosa, e che il metodo objc sia solo un wrapper attorno alla chiamata a Block_release() comunque.

5

As it's explained in reference La somma di copia/rilascio deve essere uguale a zero. Quindi se stai usando Objective-C puoi chiamare [block copy] e quindi [block release].

Se si utilizza C, è necessario utilizzare Block_copy() e Block_release().

Come ha scritto Jasarien, probabilmente stanno facendo la stessa cosa, quindi puoi usarli in modo intercambiabile. Tuttavia è importante mantenere la convenzione coerente, quindi quando usi [block copy] preferisci usare [block release] di Block_release()

Problemi correlati