typedef void (^MyResponseHandler) (NSError *error);
@property (strong, nonatomic) MyResponseHandler ivarResponseHandler;
synthesize ivarResponseHandler = _ivarResponseHandler;
- (void)myMethod:(MyResponseHandler)responseHandler
{
self.ivarResponseHandler = responseHandler;
...
}
è l'assegnazione al Ivar attraverso il @property
corretta? So che nella gestione manuale della memoria avresti avuto bisogno di self.ivarResponseHandler = [responseHandler copy];
per assicurarmi che il blocco fosse stato copiato dallo stack sull'heap. Ma guardando Session 322 - Obiettivi-C Avanzamenti in profondità (minuto 25) dal WWDC 2011, l'oratore dice che ARC gestisce automaticamente l'assegnazione di un blocco a un ivar. Volevo solo essere sicuro.
Non risponde direttamente alla domanda. Ma penso che userò questo modello nel mio codice ora. – bearMountain
(due anni dopo) Ho appena posto una domanda molto simile che rispecchia la tua: [Devo ancora copiare/Block_copy i blocchi sotto ARC?] (Http://stackoverflow.com/questions/23334863). La conclusione generale della risposta è che il modulo per scrivere le proprietà per i blocchi, questa risposta accettata, è assolutamente giusto e corretto anche nei giorni nostri. –