выделение и освобождение VS.autoRelease.почему и когда? - PullRequest
0 голосов
/ 23 марта 2011

Я вижу, что многие люди размещают и выпускают строки NSS.

Я понимаю, что преимущество в том, что строка освобождается сразу, а не с помощью автоматического выпуска.

мои вопросы:

  1. эффективно ли это, и я всегда должен отдавать предпочтение распределению и выпуску на autoRelease?
  2. что более важно - выделять и освобождать немедленно, а затем снова выделять ИЛИ выделять, использовать и освобождать в dealloc.

оценит любое объяснение.

Спасибо

Шани

Ответы [ 2 ]

1 голос
/ 17 января 2012

Я не понимаю, как вы могли бы повторно использовать строку NSString.Повторное использование экземпляра NSMutableString может быть немного быстрее его повторного создания, но вы не увидите разницу.Сосредоточьтесь на простоте и удобстве обслуживания вашего кода.

Я думаю, что ваш вопрос более уместен - использовать [[NSString alloc] init] или [NSString string].Пока производительность не является проблемой, всегда выбирайте самую простую.Это будет автоматически выпущенная версия, потому что вам не нужно выпускать ее самостоятельно.

1 голос
/ 23 марта 2011
  1. В большинстве случаев это не имеет значения.Я думаю, что вы должны использовать авто-релиз, поскольку он делает код более простым, а ярлык @ "string" очень элегантным.
  2. Основное различие - момент времени, когда происходит релиз.Как я уже сказал, в большинстве случаев это не имеет никакого значения.Если вы хотите более точно контролировать время выпуска, вы также можете сделать это для автоматического выпуска, выполнив собственный пул NSAutoreleasePool.
...