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