J'ai récemment essayé de compiler un ancien projet Xcode (qui compilait très bien), et maintenant je vois beaucoup d'erreurs de cette forme:
error: writable atomic property 'someProperty' cannot pair a synthesized setter/getter with a user defined setter/getter
Le modèle de code qui provoque ces erreurs ressemble toujours à ceci:
// Interface:
@property (retain) NSObject * someProperty;
// Implementation:
@synthesize someProperty; // to provide the getter
- (void)setSomeProperty:(NSObject *)newValue
{
//..
}
Je peux voir pourquoi l'erreur est générée. Je dis au compilateur de synthétiser mes accesseurs de propriété (getter et setter), puis immédiatement après je remplace le setter manuellement. Ce code a toujours senti un peu mauvais.
Alors, quelle est la bonne façon de faire cela? Si j'utilise à la @dynamic
place de @synthesize
, je devrai également écrire le getter. Est-ce le seul moyen?
atomic
propriétés? Dans le cas de propriétés atomiques, il peut être judicieux de synchroniser la paire getter / setter en ce qui concerne la stratégie de verrouillage. Ceci est difficile si une partie est synthétisée tandis que l'autre est du code personnalisé.