- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
{
NSArray *items = ...;
[items enumerateObjectsUsingBlock:^(Item *item, NSUInteger idx, BOOL *stop) {
// do some stuff with item
item = nil;
}];
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−516
{
NSArray *items = ...;
[items enumerateObjectsUsingBlock:^(Item *item, NSUInteger idx, BOOL *stop) {
// do some stuff with item
item = nil;
}];
}
Строка 6 написана сознательно и повторяется в ряде других методов.
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
В тоже время если ты знаешь что до конца блока еще далеко, но есть смысл занулить, но только если обьекту нету в пуле. Иначе он не удалится. Чувак ни слова не казал про пул, а ты пул приплел зачем то.
Нихера ты в мемори менеджменте ни педришь