Каков наилучший способ использования функций iPhone 3.0 при сохранении совместимости с более ранними версиями?
-
06-07-2019 - |
Вопрос
Например, предположим, что я написал свой собственный класс, который позволял мне записывать аудио на iPhone. iPhone OS 3.0 теперь предоставляет эту функциональность как часть Cocoa Touch Framework.
Как я могу использовать свой существующий класс для поддержки iPhone OS версии 2.2.1 и более ранних, но в то же время использовать новый класс, предоставляемый Cocoa Touch Framework для поддержки iPhone OS 3.0?
Решение
Поскольку Objective-C является очень динамичным языком, вы можете настроить таргетинг на 2.x и запросить наличие функций 3.0:
id pasteboard = [objc_getClass("UIPasteboard") generalPasteboard];
if (pasteboard) {
NSLog(@"Got pasteboard, we're clearly on 3.0+");
} else {
NSLog(@"Pasteboard not available, definitely 2.x");
}
Другие советы
Платформа iPhone имеет самую высокую скорость обновления среди всех мобильных ОС, поэтому я не стал бы беспокоиться об обратной совместимости. Перейдите к API OS 3.0 и сконцентрируйтесь на других полезных вещах с вашим приложением.
Если людям нужно ваше приложение, и у них есть 2.2.1 - все, что им нужно сделать, это обновить - и iPhone OS также является самой простой ОС для обновления.