2010-07-02 2 views
2

Так что я использую UI_USER_INTERFACE_IDIOM в сочетании с [[UIDevice currentDevice] model], чтобы проверить, есть ли я на iPhone, iPod или iPad. То, что я нашел, это то, что в эмуляторе iPad 3.2 UI_USER_INTERFACE_IDIOM по-прежнему оценивает UIUserInterfaceIdiomPhone (iPhone).Работает ли UI_USER_INTERFACE_IDIOM с семейством целевых устройств

Мне интересно, связано ли это с настройкой семейства целевых устройств. Я настроен только на iPhone для своего приложения (я не хочу создавать универсальное приложение с масштабирующими представлениями). Тем не менее, я поддерживаю SDK 3.2, поэтому я все еще хочу, чтобы пользователи, у которых iPad, могли запускать мое приложение для iPhone. Будет ли UI_USER_INTERFACE_IDIOM правильно оцениваться на iPad, даже если я настроен на iPhone?

ответ

2

UI_USER_INTERFACE_IDIOM не проверьте, является ли устройство iPhone или iPad. Что он проверяет, является ли пользовательский интерфейс в режиме iPhone (1x/2x вещь) или режиме iPad.

Если приложение не настроено для iPad, оно всегда будет возвращать UIUserInterfaceIdiomPhone, потому что UI - это приложение для iPhone. Это особенность по дизайну.

И даже если приложение настроено только на iPhone, iPad должен иметь возможность запускать его без каких-либо проблем, если вы используете методы, описанные в документе.

(Если вам нужно IPad специфические возможности, не проверить, действительно ли устройство является IPad. Вместо этого проверьте индивидуального потенциала.)

+0

Я пытаюсь определить, является ли или не связывать телефонные номера действий телефонного звонка, основанные на способности вызывающего устройства. Есть способ или макрос, который я мог бы использовать для определения этого? – unjust

+0

@unjust: вы можете слабо ссылаться на CoreTelephony (я предполагаю, что вы используете CT), а затем проверить, есть ли некоторые классы, например. 'CTCall' существует с помощью NSClassFromString. – kennytm

+0

Будет ли [[UIDevice currentDevice] модель] придумать iPad? Я пытаюсь убедиться, что только iPad может автоматически вращаться. – Felixs

0

Лучшее, что я могу предложить, что на IPad симулятор (3,2) во время работы в режиме "iPhone" в

NSLog(@"model : %@", [UIDevice currentDevice].model); 

возвращает

model : iPhone Simulator 

(в качестве примечания: я создаю только для «iPhone» и, таким образом, работаю в iPhone на iPad. Я должен предположить, что на имя «модели» возвращается такое влияние)

0

Как говорят люди, проверьте индивидуальную возможность.

Для совершения вызова, сделать это

// Only show the button if its is a device capable of making calls 
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel:"]]) { 
    self.Button.hidden = NO; 
} else { 
    self.Button.hidden = YES; 
} 
Смежные вопросы