Компьютерная графика

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Компьютерная графика » ООП, Python, Ruby, Lua, Obj-C, Smalltalk, D » Objective-C и работа с памятью


Objective-C и работа с памятью

Сообщений 1 страница 3 из 3

1

И все-таки задам этот вопрос. Хочу подтвердить свои сомнения. Разработка ведется для iPhone.

Код:
[scoreLabel setString:[[NSString alloc] initWithFormat:@"Score: %d", score]];

Этот код вызовет утечку памяти?

0

2

IMHO, да
Посокльку alloc вызывает создание нового объекта, т.е.

[[NSString alloc] initWithFormat:@"Score: %d", score]

создает новый объект (not autoreleased), и передает его в setString, который скорее всего у текущего объекта вызовет release/autorelease, сделает присвоение и retain.
Поэтому после этого у нас будет строка с refCount=2

Если я не ошибаюсь, есть метод [NSString stringWithFormat:] который возворащает autoreleased-объект. Там всего должно быть в порядке

0

3

Я тоже так думаю, спасибо за ответ =).  Автоматический подсчет ссылок ИМХО не хорошо. Автосборка мусора- это да. А подсчет ссылок.. Сколько я видел "добрых" отзывов об его использовании в string.

0


Вы здесь » Компьютерная графика » ООП, Python, Ruby, Lua, Obj-C, Smalltalk, D » Objective-C и работа с памятью


создать форум