Цель-C/UIButton/SetTitle

Сохраняет ли метод setTitle UIButton NSString, переданный в качестве аргумента?

Думаю, я могу полагаться на тот факт, что свойство определяется как:

свойство (неатомарное, только для чтения, сохранение) UILabel *titleLabel

В этом случае я думаю, что он сохраняет строку.

Спасибо, Apple92


person user255607    schedule 10.05.2010    source источник


Ответы (2)


Вы можете рассчитывать на то, что классы фреймворка сохранят то, что им нужно, если иное не задокументировано. Это часть правил управления памятью компании Cocoa. Вы должны прочитать этот документ и позволить ему усвоиться, потому что, как только вы его поймете, в основном все ваши вопросы по управлению памятью исчезнут — и наоборот, если вы не потратите время на то, чтобы понять этот документ, вы всегда будете чувствовать себя неуверенно. К счастью, это довольно просто.

Кроме того, я бы поостерегся слишком полагаться на то, что другие люди рассказывают вам правила. Особенно в неформальной обстановке, такой как Stack Overflow, люди имеют склонность к упрощению и оговоркам, что приводит к недопониманию — между тем, официальные правила были проверены много, много раз за эти годы.

person Chuck    schedule 10.05.2010

Да, вы в значительной степени ответили на свой вопрос там.

Не все API сохраняются, поскольку исходный NSString может каким-то образом измениться - один API может получить ссылку на NSString, но на самом деле это, например, NSMutableString.

В стандартах кодирования Google для Objective C есть раздел об этом, здесь

person JBRWilkinson    schedule 10.05.2010