Поскольку мое приложение для iPhone может работать как в ОС 3, так и в 4, мне нужен способ безопасного тестирования функций iOS 4 SDK.
Мне нравится избегать проверки строки [UIDevice ... systemVersion] (интересно, почему Apple не предоставила здесь числовое значение для простого тестирования, поскольку оно доступно в OS X).
Так или иначе. Обычный простой способ проверить возможности SDK - проверить, отвечает ли класс селектору, например:
if ([UIApplication instancesRespondToSelector:...
А для методов C просто проверяется, равен ли указатель функции NULL:
if (newFunction != NULL) ...
Но моя проблема в том, что мне нужно проверить, существует ли глобальная переменная. Например. вот этот:
extern NSString *const UIApplicationDidEnterBackgroundNotification __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_4_0);
Есть идеи, как можно проверить их существование во время выполнения?