Seguendo un tutorial di iOS 5 sul corso di Paul Hegarty, vediamo questo codice in un'app che dimostra l'uso di GCD. Apparentemente GCD richiede il rilascio a causa di problemi relativi al multithreading che sono alquanto imprevedibili in quanto gli oggetti sono ancora necessari.È necessario rilasciare le code GCD sotto ARC in iOS 6.0?
dispatch_async(dowloadQueue, ^{
....
// do some stuff
....
});
dispatch_release(dowloadQueue);
ho aggiornato a iOS 6 e XCode 4.5 e ottengo un "ARC vieta rilascio esplicito ..." messaggio
non ho provato questo codice sotto iOS5/XCode 4.2
È solo perché l'ARC è diventato più intelligente e non ho più bisogno di essere rilasciato in GCD? Oppure ho appena frainteso?
È necessario __bridge_transfer per Objective-C quando si crea la coda? – openfrog
@openfrog - No, se è trattato come oggetto Objective-C è già gestito da ARC quindi non è necessario trasferirlo. –
@BradLarson C'è un modo per disattivarlo? Oppure, come scrivo in modo che compili sia con iOS 5 sia con iOS 6? – fishinear