2010-05-10 4 views
1

La méthode setTitle de UIButton conserve-t-elle la chaîne NSString passée en argument?Objective-C/UIButton/SetTitle

Je suppose que je peux compter sur le fait que la propriété est définie comme:

propriété (nonatomic, en lecture seule, retenir) UILabel * TitleLabel

Dans ce cas, je pense qu'il conserve toutefois la chaîne .

Merci, Apple92

Répondre

0

Oui - vous avez répondu à peu près là-bas votre propre question.

Toutes les API conservées comme NSString d'origine peuvent changer d'une façon ou d'une autre - une API peut recevoir une référence NSString, mais c'est en fait un NSMutableString, par exemple.

Le Google coding standards for Objective C a une section à ce sujet, here

1

Vous pouvez compter sur les classes cadres pour conserver les choses dont ils ont besoin, sauf indication documentée. Ceci fait partie de memory management rules de Cocoa. Vous devriez lire ce document et le laisser couler, car une fois que vous le comprenez, toutes vos questions de gestion de la mémoire disparaissent - inversement, si vous ne prenez pas le temps de comprendre ce document, vous vous sentirez toujours incertain. Heureusement, c'est assez simple.

En outre, je ferais attention à ne pas trop compter sur les autres personnes qui vous disent les règles. Surtout dans des contextes informels comme Stack Overflow, les gens ont tendance à simplifier et à mal dire, conduisant à des malentendus - pendant ce temps, les règles officielles ont été relues plusieurs fois au fil des ans.