Di recente ho provato a compilare un vecchio progetto Xcode (che era solito compilare bene), e ora vedo molti errori di questo modulo:
error: writable atomic property 'someProperty' cannot pair a synthesized setter/getter with a user defined setter/getter
Il modello di codice che causa questi errori è sempre simile al seguente:
// Interface:
@property (retain) NSObject * someProperty;
// Implementation:
@synthesize someProperty; // to provide the getter
- (void)setSomeProperty:(NSObject *)newValue
{
//..
}
Vedo perché viene generato l'errore. Dico al compilatore di sintetizzare i miei accessor di proprietà (sia getter che setter), e subito dopo sostituisco manualmente il setter. Quel codice ha sempre annusato un po '.
Quindi, qual è il modo corretto per farlo? Se uso @dynamic
invece di @synthesize
, dovrò anche scrivere il getter. Quello è l'unico modo?
atomic
proprietà? In caso di proprietà atomiche potrebbe essere una buona idea mantenere sincronizzata la coppia getter / setter rispetto alla strategia di blocco. Questo è difficile se una parte viene sintetizzata mentre l'altra è un codice personalizzato.