2011-10-14 15 views
9

Utilizzando ARC, ho una proprietà dichiarata della forma seguente:Che cosa potrebbe causare la mia (forte) dichiarata proprietà di diventare nulla dietro la mia schiena?

@property (nonatomic, strong) MyClass * instanceName; 

ho impostato questa proprietà in tre punti - e ho aggiunto i punti di interruzione a tutti e tre i luoghi.

Faccio riferimento a questa proprietà in un numero di punti.

Mentre passo attraverso il mio codice, la proprietà viene impostata e nessuno degli altri due posti in cui la proprietà viene impostata viene chiamato. (Come previsto).

Tuttavia, ad un certo punto, il valore di questa proprietà sta diventando nullo.

Ho aggiunto un metodo dealloc alla mia classe, con un NSLog e un punto di interruzione - ma non viene mai chiamato (quindi non è come se venisse trattato come un riferimento debole di azzeramento).

Sono sconcertato sul motivo per cui la mia proprietà "forte" sarebbe mai diventata nulla senza che io lo facessi.

Qualsiasi consiglio sarebbe apprezzato.

Grazie

risposta

9

La semplice risposta è che si sono inducendolo a farlo. Semplicemente non sai ancora come.

A un certo punto dopo l'accesso a ivar, dovrebbe apparire nella finestra di debug con una "i" di fronte. Fai clic destro su di esso e seleziona "Guarda ...". Otterrai un punto di interruzione ogni volta che la memoria viene modificata.

+0

Grazie ... hai ragione. – Steve

Problemi correlati