Sto lavorando a un'applicazione per iPhone. Ho un oggetto della classe che deve rilasciare numerosi oggetti della classe Block
. Ogni Block
dispone attualmente di una proprietà che conserva una variabile di istanza della classe .Ho un riferimento circolare. Come posso creare un riferimento debole in Objective-C?
@interface Block : UIImageView {
Row *yCoord;
}
@property (nonatomic,retain) Row *yCoord;
@end
Ogni contiene un NSMutableArray
di questi blocchi.
@interface Row : NSObject {
NSMutableArray *blocks;
}
-(void)addBlock:(Block*)aBlock;
@end
@implementation Row
-(void)addBlock:(Block*)aBlock {
[blocks addObject:aBlock];
aBlock.yCoord = self;
}
@end
Comprendo che si tratta di un riferimento circolare. La documentazione di Apple afferma che per deallocare un oggetto con un riferimento circolare ho bisogno di un riferimento debole invece di un riferimento forte (una proprietà retain), ma non segue e spiega esattamente come vado a farlo. Ho intenzione di rilasciare e deallocare tutti i Blocchi all'interno di una Fila e la stessa Riga contemporaneamente. Come posso impostare un riferimento debole all'interno di ciascuno dei miei blocchi nella riga "padre"?
A proposito, devi essere elogiato per la modifica e il tag appropriato della tua domanda, soprattutto come nuovo utente SO. Bravo! Apprezzo le persone che si prendono il tempo per migliorare un po 'le cose per il bene della comunità. –
Perché, grazie! Questo sito è esattamente quello che stavo cercando in ogni aspetto. Ha senso prendersi il tempo di fare una domanda chiara quando così tante persone sono disposte a saltare fuori e rispondere subito. – Tozar