Я новичок в Objective-C, и я хотел бы задать вопрос о объявлении локальной переменной (и переменной объекта не property) как _weak. Это хорошая практика, чтобы избежать утечки памяти?Слабые локальные переменные в объекте-c
ответ
Утечка памяти или проблемы могут возникнуть, если вы используете сильные ссылки внутри блоков, например. Лучше искать на SO перед постами. Вы также должны прочитать здесь очень хорошо объясняют: Differences between strong and weak in Objective-C
Если вы хотите получить доступ к методу самостоятельной, например, внутри блока, можно определить как:
__block id WeakSelf = self;
затем внутри блока вы можете позвонить в :
{ // -> inside block
[WeakSelf dosomeFunction];
} // <- block ends
утечки памяти не локализованы только для блоков, существует много других способов использования приложения в качестве базового цикла. – holex
Я знаю, я просто даю пример пользователю. – user3344236
Спасибо за ответы. Я уже прочитал этот поток, но мне было просто интересно, является ли это чем-то общим для записи локальных переменных с помощью _weak. –
возможно дубликат [Сильная и слабая для локальной переменной, я не понимаю] (http://stackoverflow.com/questions/10922888/strong-and-weak-for-local-variable-i -dont-understand) – Popeye
Если вы новичок в Obj-C, я бы не рекомендовал объявлять какие-либо локальные переменные как слабый, если вам не нужно использовать их внутри блока (Xcode будет жаловаться и делать это очевидным) – Alex
Спасибо за ответы. Я уже прочитал этот поток, но мне было просто интересно, является ли это чем-то общим для записи локальных переменных с помощью _weak. –