Domanda

Cosa succede se rilascio un oggetto rilasciato automaticamente? È un UIButton rilasciato automaticamente che voglio rilasciare e l'unico modo per creare un UIButton è utilizzare il metodo di convinenza buttonWithType :. Verrà rilasciato dalla memoria come un normale oggetto? O dovrei lasciare che la autoreleasepool se ne occupi? Se non ci fossi riuscito, non l'avrei rilasciato automaticamente.

Grazie !!

È stato utile?

Soluzione

Dovresti lasciare che il pool di rilascio automatico si occupi di esso. Una volta aggiunto il pulsante a una vista padre, tale vista lo manterrà e l'handle del rilascio automatico verrà gestito dal pool di rilascio automatico.

Il modo più semplice di pensarci è in termini di proprietà che non "possiedi" il riferimento che hai ottenuto tramite un metodo di praticità, quindi non devi preoccuparti di rilasciarlo a meno che tu non lo conservi anche.

Altri suggerimenti

Devi solo rilasciare un oggetto di tua proprietà. + buttonWithType: non restituisce un oggetto di proprietà, quindi non è necessario rilasciarlo.

Rivedi le Cocoa Object Ownership Rules .

Perché stai cercando di evitare un oggetto rilasciato automaticamente qui? Presumibilmente stai creando il pulsante perché stai usando il pulsante e lo stai inserendo in una gerarchia di viste, quindi non c'è motivo reale per accelerare lo svuotamento del pool di autorelease che contiene il pulsante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top