Какие утечки автоматический подсчет ссылок в Objective-C не предотвращает и не сводит к минимуму?

На платформах Mac и iOS утечки памяти часто вызываются невыпущенными указателями. Традиционно всегда было крайне важно проверять ваши выделения, копии и сохранения, чтобы убедиться, что у каждого есть соответствующее сообщение о выпуске.

Набор инструментов, который поставляется с Xcode 4.2, вводит автоматический подсчет ссылок (ARC) с последней версией Компилятор LLVM , который полностью решает эту проблему, заставляя компилятор управлять памятью за вас. Это довольно круто, и это действительно сокращает много ненужного, рутинного времени разработки и предотвращает множество неосторожных утечек памяти, которые легко исправить при правильном балансе сохранения / освобождения. Даже пулы автозапуска должны управляться по-разному, когда вы включаете ARC для приложений Mac и iOS (поскольку вам больше не нужно выделять свои собственные NSAutoreleasePool ).

Но что другое утечки памяти не предотвращают то, что мне все еще нужно остерегаться?

В качестве бонуса, в чем разница между ARC в Mac OS X и iOS и сборкой мусора в Mac OS X?

234
задан Honey 6 October 2018 в 05:59
поделиться