[ObjC] Несколько вопросов новичка
От: Аноним  
Дата: 19.05.11 14:15
Оценка:
Добрый день, коллеги!
Читаю книгу по Objective-C для бигиннеров, но мне не все из нее понятно, возникло несколько вопросов:
1. В книге написано, что при присваивании нужно делать retain объекту, и что сам язык этого почему-то не делает (хотя намекают на то, что по идее должен бы, и что retain делается автоматом при создании объекта и при добавлении его в массив). У меня вопрос — всегда ли надо при присваивании делать retain и есть ли исключения?
2. В книге вскользь упомянуто, что можно создавать несколько авторелиз пулов. Важен ли порядок уничтожения и создания пулов или пофигу?
3. Если я отправляю объекту сообщение autorelease, то в какой пул он будет помечен для удаления? В последний созданный?

Буду благодарен за ответы.

11.07.11 17:56: Перенесено модератором из 'C/C++. Прикладные вопросы' — VladD2
Re: [ObjC] Несколько вопросов новичка
От: olgerd http://www.linkedin.com/in/olegzjuz
Дата: 30.05.11 19:49
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день, коллеги!

А>Читаю книгу по Objective-C для бигиннеров, но мне не все из нее понятно, возникло несколько вопросов:
А>1. В книге написано, что при присваивании нужно делать retain объекту, и что сам язык этого почему-то не делает (хотя намекают на то, что по идее должен бы, и что retain делается автоматом при создании объекта и при добавлении его в массив). У меня вопрос — всегда ли надо при присваивании делать retain и есть ли исключения?
лучше почитать из первоисточника: Memory Management Programming Guide

А>2. В книге вскользь упомянуто, что можно создавать несколько авторелиз пулов. Важен ли порядок уничтожения и создания пулов или пофигу?

порядок важен, в принципе. при создании авторелиз пул помещается на вершину стека пулов и становится активным (в пределах своего потока) и при удалении пула который не активный — он удаляет все вложенные в него пулы (до вершины) в данном потоке.
вот здесь подробнее об этом: Autorelease Pools

А>3. Если я отправляю объекту сообщение autorelease, то в какой пул он будет помечен для удаления? В последний созданный?

да, все верно, в последний созданный (в активный пул)

А>Буду благодарен за ответы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.