2012-12-03 3 views
0

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

Во-первых, я знаю, что есть два способа, чтобы проверить версию операционной системы

1)

[[UIDevice currentDevice] systemVersion]

Это, безусловно, не то, что я ищу, потому что это используется во время выполнения, что я «Я смотрю, что во время компиляции можно что-то сделать.

2)

#if __IPHONE_6_0 
// do something 
#endif 

Это то, что я надеялся, что это работает, но это не так. 2 проблемы здесь:

i) Запуск на iPhone симулятор версии 5.0, и я заметил, что #if __IPHONE_6_0 возвращает ИСТИННОЕ значение. Я думал, что он должен быть ИСТИННЫМ, только если версия 6.0 или выше?

ii) То же самое происходит, когда я тестировал его на симуляторе iPad. Этот макрос работает и на iPad?

Причина, по которой я хочу, чтобы это было сделано во время компиляции, связано с тем, что я использую последнюю версию iOS 6.0 Social Framework, но я хотел бы, чтобы мое приложение поддерживало и более старую версию (мин. 4.3). Проблема заключается в том, что мои коды используют материалы Social Framework. Поэтому я должен выполнить проверку макросов, чтобы узнать, поддерживает ли это устройство Social Framework или нет, если не компилировать коды конкретной социальной структуры. Если я этого не сделаю, во время компиляции я получу ошибку, потому что ОС, которая ниже версии 6, не знает, что такое Social Framework.

Ожидаем получить некоторые решения здесь.

ответ

0

Вы не можете использовать макросы для этой цели, потому что при компиляции макросов использовать ВАШУ версию, и она не будет работать для других устройств (это кажется очевидным ...)

+0

Я думаю, что я нашел решение .... спасибо за вашу информацию. –

Смежные вопросы