1. Objective C / Говнокод #18701

    −516

    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, 09 Сентября 2015

    Комментарии (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
              Ответить
              • Когда блок кончается, автопоинтер зачищается. Если на обьект есть поинтер в пуле, то обьект будет жить, пока не закроют пул. Занулять локальную переменную в последней строке кода это идиотизм.

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

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

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