Управление памятью в Objective c - PullRequest
0 голосов
/ 15 апреля 2011
  1. Я новичок в цели c, а также в области разработки, и я хочу знать, что когда мы закрываем наше приложение, мы автоматически освобождаем или заканчиваем наши ресурсы, которые мы сохраняем во время нашего приложения, так зачем нам это нужно?сделать это явно (выпуск или авто-релиз в obj c)?

  2. Мой второй вопрос заключается в том, что я сталкиваюсь с проблемой, когда я освобождаю объект класса делегата приложения в классе rootViewcontroller в методе deallocмоя программа аварийно завершает работу, когда я снова собираюсь перейти в класс контроллера, как показано ниже.

    - (void) viewDidLoad {TestAppDelegate * object = (TestAppDelegate *) [[UIApplication sharedApplication] делегат];}

    - (void) dealloc {[object release];[super dealloc];}

1 Ответ

2 голосов
/ 15 апреля 2011
  1. Вы должны освобождать или автоматически освобождать объекты, чтобы все объекты выполняли их - () dealloc's. Когда процесс завершается, ОС очищает всю память, занятую процессом, но не может очистить некоторые другие ресурсы (мьютексы, семафоры, может быть что-то еще), потому что они являются объектами ядра и могут использоваться различными процессами. Таким образом, ОС не может знать, следует ли удалять эти объекты после завершения начального процесса. Разработчик должен очистить такие объекты сам, и это обычно делается в методах dealloc соответствующих объектов.

  2. Не ясно, когда происходит сбой. Не могли бы вы уточнить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...