Как новый разработчик Objective-C, какие проблемы с памятью мне следует остерегаться при использовании ARC?

Недавно я начал писать код на Objective-C для устройств iOS 5. Мой новый MacBook загружен с Xcode 4.2 и последними SDK для Mac и iOS. Пока что это был забавный опыт, но есть одна проблема, которую я вижу в текущем состоянии документации и доступных книг.

В частности, в большинстве книг (которые еще предстоит обновить) всегда упоминается, как и когда управлять своей памятью. Это замечательно, однако текущий SDK / компилятор включает автоматический подсчет ссылок, и, поскольку я оставляю это включенным для своих проектов, я не знаю, что я должен лично контролировать и управлять собой.

Я вырос в C #. Управление памятью в C # (технически .NET) полностью осуществляется сборщиком мусора фреймворка. Я понимаю, что ARC на самом деле является функцией компилятора, которая автоматически добавляет шаблонный код туда, где он принадлежит. Более того, мои попытки определить, где я должен управлять своим собственным освобождением объектов, не вызвали ничего, кроме ошибок компилятора, потому что ARC хочет позаботиться об этом за меня.

Мне еще предстоит найти случай, когда мне нужно было бы управлять своими объектами. Я становлюсь «ленивым», потому что не знаю, что отслеживать и что освобождать, и совершенно не понимаю, как такое поведение может повлиять на производительность моего приложения.

С точки зрения новых пользователей, о каких «подводных камнях» я должен знать при использовании ARC в моих проектах iOS? Я прочитал здесь несколько вопросов об управлении памятью и ARC, но, честно говоря, они не слишком дружелюбны для нового разработчика iOS. Не мог бы кто-нибудь дать разумный, маркированный список, который объясняет, какие проблемы и проблемы следует остерегаться, а также справедливое руководство относительно того, когда необходимо самоуправление памятью?

8
задан BoltClock 21 April 2012 в 21:24
поделиться