Remplacer setter avec arc
@interface Article : NSObject
@property (nonatomic, strong) NSString *imageURLString;
@end
@implementation Class
@synthesize imageURLString = _imageURLString;
- (void)setImageURLString:(NSString *)imageURLString {
_imageURLString = imageURLString;
//do something else
}
Ai-je correctement substituer le setter lorsque l'ARC est activé?
- Oui, cela semble correct pour moi. Est-ce de travailler à la façon dont il ou pas?
Vous devez vous connecter pour publier un commentaire.
Oui, c'est exact. Aussi m'a pris du temps à faire confiance que c'est effectivement la bonne chose à faire.
Vous vous rendez compte que, dans ce cas, le remplacement n'est pas nécessaire tant que vous n'avez rien faire de plus que la norme a généré setter ferait? Uniquement si vous ajoutez plus de code à
setImageURLString:
auriez-vous besoin pour remplacer le setter.Expansion sur la réponse donnée par @Pascal, je voudrais juste ajouter que c'est certainement la bonne chose à faire et vous pouvez le vérifier en voyant ce que le code compile vers le bas pour. J'ai écrit un post de blog sur la façon d'aller sur la vérification, mais, fondamentalement, que le code compile vers (ARMv7):
Note de l'appel à
_objc_storeStrong
qui selon LLVM fait ceci:Donc, pour répondre à votre question, oui, c'est vrai. L'ARC a ajouté dans la version correcte de l'ancienne valeur et de conserver de la valeur nouvelle.
[Probablement plus compliqué de répondre, mais pensé qu'il était utile de montrer comment vous pouvez aller à ce sujet répondre à ce genre d'ARC liés à la question pour vous-même à l'avenir]
_lineColor = [input copy];
, oui.Appel
Que c'est