Субъективный Си / Говнокод #18701 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
{
	NSArray *items = ...;
	[items enumerateObjectsUsingBlock:^(Item *item, NSUInteger idx, BOOL *stop) {
		// do some stuff with item

		item = nil;
	}];
}

Строка 6 написана сознательно и повторяется в ряде других методов.

Запостил: gumbert gumbert, (Updated )

Комментарии (16) RSS

  • Ты не поверишь, я тоже так делаю для больших объектов - картинки и тп. Без этого они висят в авторелиз пуле и крашат приложение, у меня было так. Вылечилось только прямым обнулением ссылок. Да, я пишу под Арк и знаю как он работает
    Ответить
    • Если они в пуле то зануление их не вычистит, ты ламер
      Ответить
      • Я вижу что это блок, я про другие 6 методов
        Ответить
        • Каких 6? Очистить авторелиз можно только закрытием. Зануление автоматического поинтера тут нипричем. Обосрался ты, признайся
          Ответить
          • бля вот тебе отсылаю к экспертам stackoverflow:

            You never need to set a variable to nil in ARC unless you want to ensure its deallocation as soon as possible (i.e. [myObject release] under non-ARC code).

            при желании можно еще найти, у меня желания нет я видел как работает код без обнуления и с обнулением пойнтеров

            Не один я так делаю, многие так делают чтоб быстро освободить память



            http://stackoverflow.com/questions/11444988/under-arc-need-to-set-nil-to-all-the-strong-member-when-unload-the-viewcontroll
            Ответить
            • Когда блок кончается, автопоинтер зачищается. Если на обьект есть поинтер в пуле, то обьект будет жить, пока не закроют пул. Занулять локальную переменную в последней строке кода это идиотизм.

              В тоже время если ты знаешь что до конца блока еще далеко, но есть смысл занулить, но только если обьекту нету в пуле. Иначе он не удалится. Чувак ни слова не казал про пул, а ты пул приплел зачем то.

              Нихера ты в мемори менеджменте ни педришь
              Ответить
              • жестоко ты его.. Быть может это его код и он пытался защищаться.. Обидно человеку стало.. А ты его добил%)
                Ответить
                • Судьба уже наказала меня за это хамство: я больше так не буду
                  Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8