iPhone: Как проверить устройство с помощью MACRO? - PullRequest
1 голос
/ 30 ноября 2011

Я хочу проверить, является ли устройство iPhone или iPad, используя macro.

У меня есть файл Constant.h, где я дал значения, используя #define.

Теперь я хочу проверить устройство, используя #ifdef #endif.

Способ разворота возможен только в файле .m.

Но у меня есть только один .h.

- (BOOL) isPad{ 
   #ifdef UI_USER_INTERFACE_IDIOM
        return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
   #else
       return NO;
   #endif
}

Так что описанный выше метод для меня бесполезен?

Есть ли способ сделать это?Или любым другим способом?

Ответы [ 3 ]

5 голосов
/ 23 декабря 2013

У меня есть простой ответ на этот вопрос.

#define isiPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? YES : NO)

Возвращает 1, если устройство - iPad, и 0, если устройство - iPod или iPhone.

3 голосов
/ 30 ноября 2011

Вы не можете проверить это макросом, потому что макрос раскрывается во время компиляции. Поэтому вам нужно знать тип устройства во время компиляции.

Если вы хотите поддерживать оба устройства во время выполнения, вам необходимо проверить тип устройства и использовать соответствующий набор констант.

0 голосов
/ 30 ноября 2011
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 30200
    UIDevice* thisDevice = [UIDevice currentDevice];
    if(thisDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad)
    {
    // etc.
    }
 #endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...