Безопасно ли проверять UI_USER_INTERFACE_IDIOM (), чтобы определить, iPhone это или iPad? - PullRequest
4 голосов
/ 11 октября 2010

Я нашел этот код, здесь :

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        str = [NSString stringWithString:@"Running as an iPad application"];
    } else {
        str = [NSString stringWithString:
                  @"Running as an iPhone/iPod touch application"];
    }

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Platform"
                                                    message:str
                                                   delegate:nil
                                          cancelButtonTitle:@"OK" 
                                          otherButtonTitles:nil];
    [alert show];
    [alert release];   

Насколько безопасен этот чек? Apple действительно рекомендует это делать? Или может случиться так, что он не обнаружит iPad как iPad или iPhone как iPhone?

1 Ответ

7 голосов
/ 11 октября 2010

Это должно быть достаточно безопасно, это хорошо - задокументировано Apple.

Это просто сокращение для следующего кода:

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
// etc

Это может произойти сбой, если вы попытаетесь запустить это на чем-то меньшем, чем iOS 3.2 (как это было только тогда представлено), но это может не быть проблемой для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...