Какие функции я могу использовать в приложении, которое работает на iOS 4.0 и 5.0? - PullRequest
3 голосов
/ 16 декабря 2011

Мне нужно, чтобы приложения для этой работы работали как на iOS 4, так и на iOS 5. SDK для iOS 5.0 имеет приятные функции, такие как ARC, раскадровка и т. Д., Которые недоступны в iOS 4.

Мой вопрос:Что нужно сделать, чтобы приложение было оптимизировано для iOS 4 и 5?Стоит ли разрабатывать приложение классическим способом без ARC, раскадровки и т. Д.?

Например, как я могу отключить автоматический сбор мусора для iOS 4?Если я это сделаю, то, конечно, iOS 5 не выиграет от использования ARC.Кроме того, если вы отметите ссылку как слабую / строку - это не скомпилирует для iOS4, не так ли?

1 Ответ

4 голосов
/ 21 декабря 2011

Как указывает Андрей в своих комментариях, хотя автоматический подсчет ссылок был введен с 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.Это приятное удобство, но я лично не использую его ни для чего.У Джонатана Уайта есть, и у него есть некоторые жалобы о его текущей реализации, так что вы, возможно, не сильно упустите, если дадите этой функции пропуск.

...