Comment remplacer @synthétisé les méthodes de lecture?
comment remplacer un bien synthétisé getter?
- Ce n'est ni iPhone ou iOS spécifiques. Il n'est même pas spécifiques à une plate-forme de base ou de cadre.
- "Override" a un sens précis dans la programmation orientée objet et Objective-C. Hélas, tu veux sans doute dire quelque chose d'autre: "Comment éviter de synthétiser un getter et au lieu de mettre en œuvre manuellement?" Si je suis d'interpréter correctement vous n'avez accepter la mauvaise réponse.
- Pourquoi cette question?
Vous devez vous connecter pour publier un commentaire.
À l'intérieur de votre propriété définition, vous pouvez spécifier les méthodes getter et setter comme suit:
Vous pouvez spécifier la lecture seulement, le setter seulement, ou les deux.
@synthesize
vos variables, vous juste besoin de la@property
, et il vous suffit de spécifier votre lecture et/ou setter.Mettre en œuvre la méthode manuellement, par exemple:
Le compilateur ne sera pas générer une méthode de lecture.
@property
estatomic
(par défaut), vous ne pouvez pas correctement mélanger une@synthesize
d getter/setter avec un écrit manuellement getter/setter.atomic
n'est pas que utile; il ne fait rien pour garantir l'intégrité des données dans un filet d'application. Il empêche une application de s'écraser en raison d'une condition évidente. Si vous êtes en s'appuyant suratomic
fortement, vous êtes presque certainement faire de mal... 🙂atomic
n'est pas exposé, il n'y a aucun moyen que vous pouvez manuellement mettre en œuvre le poseur ou tout simplement de la lecture et de garantir l'atomicité avec un@synthesize
datomic
setter/getter.Mettre en œuvre votre propre lecture et que le compilateur ne génère pas un. Il en va de même pour setter.
Par exemple:
est équivalent à:
Je veux juste ajouter, je n'étais pas en mesure de remplacer BOOL propriété avec getter/setter, jusqu'à ce que je ajouter ce :
donc le code complet est :
dans le fichier d'en-tête :
dans la mise en œuvre de fichier :