Piuttosto un sacco di persone sembrano utilizzare una macro comeAbbiamo davvero bisogno di una macro di rilascio sicura?
#define SAFE_RELEASE(X) [X release]; X = nil;
(me compreso).
Mi è stato rivalutato il motivo per cui lo sto usando e ho voluto dare un parere.
Lo scopo (credo) per l'utilizzo di questa macro è in modo che se si dovesse accidentalmente utilizzare il vostro oggetto dopo aver rilasciato allora non sarà possibile ottenere un'eccezione accesso male perché Objective-C sarà tranquillamente ignorarlo quando l'oggetto è nullo.
Mi sembra che questo abbia il potenziale per mascherare alcuni bug oscuri. Forse sarebbe effettivamente preferibile che il programma si arresti in modo anomalo quando tenti di usare di nuovo X. In questo modo durante i test puoi trovare il problema e migliorare il codice.
Questa macro incoraggia la programmazione pigra?
Pensieri?
La sezione della [FAQ] (http://stackoverflow.com/faq) per le domande che non dovrebbero essere poste qui. - "Non c'è nessun problema da risolvere:" Sono curioso di sapere se gli altri si sentono come me. "" – Abizern
Abbastanza giusto, ma è un problema che sto affrontando. Il problema è che dovrei continuare ad usare questa macro? Ci sono buone ragioni per usarlo di cui non sono a conoscenza? – Ian1971