Как указывает Андрей в своих комментариях, хотя автоматический подсчет ссылок был введен с LLVM Compiler 3.0, который шел с Xcode 4.2 и iOS 5.0 SDK, вы можете использовать его в приложениях, ориентированных на iOS 4.0.Нет веских причин не использовать его для приложений, которые будут работать на iOS 4.0+.Кроме того, он отличается от сборки мусора, как я объясняю в этот ответ .
__weak
указатели доступны только для приложений, использующих ARC и предназначенных для iOS 5.0 и выше.Для iOS 4.0 вам нужно будет использовать __unsafe_unretained
в качестве типа указателя, если вы хотите избежать сохранения циклов.
Однако раскадровка недоступна для приложений, ориентированных на что-либо ранее, чем iOS 5.0.Это приятное удобство, но я лично не использую его ни для чего.У Джонатана Уайта есть, и у него есть некоторые жалобы о его текущей реализации, так что вы, возможно, не сильно упустите, если дадите этой функции пропуск.