Некоторые сомнения по поводу сохранения памяти в IOS Applicato? - PullRequest
0 голосов
/ 13 января 2012
  1. Зачем нужно сохранять NSObject в приложении ios?

  2. В чем разница между retainCount==1, retainCount=2, ..... и т. Д.?

  3. Как свойства могут обрабатывать сохранение и освобождение переменной экземпляра?

  4. когда я сохраняю / отпускаю NSObject, счетчик увеличивается / уменьшается на единицу, что происходит в памяти?

1 Ответ

0 голосов
/ 13 января 2012
  1. Сохранение объекта означает, что вы вступаете во владение этим объектом. Поэтому вы должны выпустить его один раз после того, как с ним покончено.
  2. retainCount = 1 указывает, что на него жестко ссылаются из одного места. Если retainCount = 2, то на него жестко ссылаются из двух мест.
  3. Свойства, в зависимости от того, является ли оно свойством сохранения, копирования или назначения, по-разному обрабатывают управление памятью
  4. Retain count говорит нам только о количестве строковых ссылок для объекта. Поскольку он больше 0, объект не удаляется из памяти. Как только он становится равным 0, объект удаляется из памяти (вызывается dealloc объекта tht)

EDIT

  1. Если это свойство сохранения, каждый раз, когда вы устанавливаете свойство сохранения с помощью «.», Тогда старое значение освобождается, новое значение сохраняется и присваивается свойству. То же самое происходит с копией, просто новое значение отправляется копия вместо сохранения. Если это свойство назначения, новое значение присваивается непосредственно свойству (без деблокирования, без сохранения)
...