Se ho una proprietà come questa:La gestione della memoria di una proprietà può cambiare se viene ridefinita in un'estensione di classe?
//test.h
@interface test
@property (nonatomic, readonly, weak) NSObject x;
@end
ridefinito nel file di implementazione da lettura/scrittura:
// test.m
@interface test()
@property (nonatomic, readwrite) NSObject x;
@end
ho usato debole .h, ma non dissi nulla nell'estensione, la proprietà manterrà l'identificatore "debole" o cambierà in "forte"?
Le parole chiave strong/assign/weak verranno sovrascritte quando la proprietà viene ridefinita?
Come pratica comune, si specifica sempre l'attributo 'strong/weak/assign' della proprietà nell'estensione di classe. Non è necessario nella dichiarazione pubblica di sola lettura. – rmaddy
@rmaddy - Dichiarare solo 'readonly' nel' .h' e 'readwrite, weak' nell'estensione di classe nel' .m' restituisce "La dichiarazione di proprietà primaria è implicitamente forte mentre la redeclaration nell'estensione di classe è debole" in Xcode 5.1 .1. Comunque includere 'strong' o' assign' nell'estensione non aumenta l'ira del compilatore. Un compilatore successivo ha cambiato questo? – CRD
@CRD Hmmm. Immagino di non averlo fatto con proprietà 'weak'. Buono a sapersi. – rmaddy