2013-05-02 1 views
0

Я использую следующий код (в AppDelegate), чтобы обнаружить, если устройство iPhone 5является iPhone 5 всегда возвращает значение ЛОЖЬ

bool isiPhone5 = CGSizeEqualToSize([[UIScreen mainScreen] preferredMode].size,CGSizeMake(640, 1136));

возвращает ложь всегда. это не первый раз, когда я использовал этот код. eventhe NSLog для этого возвращает {320, 480}

NSLog(@"%@",NSStringFromCGSize([[UIScreen mainScreen] bounds].size));

Примечание: приложение было для IPad только и затем я сделал его универсальным. поэтому у меня будет 2 storyBoards, поэтому мне нужен код обнаружения.

Благодаря

+0

Эй, вы попробовали это на настоящем устройстве? –

+0

'([[UIScreen mainScreen] bounds] .size.height == 568)' –

+0

@ThilinaHewagama NO, но этот код работал раньше на симуляторе. –

ответ

0

Наконец я понять это.

Решение

Поскольку приложение было для IPad только [email protected] не существует в проекте. поэтому после его добавления все работает правильно.

Примечание и я не нужен код выше, потому что после того, как делает приложение универсальное в настройках Xcode проекта есть часть для информации iPhone/IPod развертывания конфигурации (значки, mainStoryBorad, экраны по умолчанию ....) где я могу настроить рассказ iPhone5 после добавления его в проект.

0

Выявить Iphone 5 попробовать это

if([[UIScreen mainScreen]bounds].size.height == 568){ 

    //iphone 5 
} 
    else 
{ 
    // less than iphone 5 
} 
+0

он не работает –

+0

его работа для меня, друга теперь получил решение @ Bobj-C – krishh

0

я использовал следующий код. Вы можете попробовать это:

#define IS_IPHONE_5 (fabs((double)[ [ UIScreen mainScreen ] bounds ].size.height - (double)568) < DBL_EPSILON) 

Тогда вы можете сделать:

if (IS_IPHONE_5) { 
    //Do your stuff 
} 

Надеется, что это помогает.

+0

он не работает –

+0

Я написал это в своем AppDelegate, и это сработало для меня. – Nameet

+0

@ Nammet да, я знаю, также код моего вопроса работал для меня в других проектах, но я не почему, особенно в этом проекте, он не работает –

0
#define IS_iPHONE_5 (fabs((double)[ [ UIScreen mainScreen ] bounds ].size.height - (double)568) < DBL_EPSILON) 

if(IS_iPHONE_5) 
{ 
    //Do something 
} 
else 
{ 

} 
0

см.ниже One

if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone){ 
if([[UIScreen mainScreen]bounds].size.height == 568){ 

    //iPhone5 Device 
} 
else 
{ 
    // Normal iPhone device 
} 

} 

EDIT: see same thread

+0

не работает –

1

Это должно работать мате,

bool isiPhone5 = ([[UIScreen mainScreen] bounds].size.height == 568); 

и убедитесь, что вы используете 4-дюймовый имитатор

enter image description here

+0

Да, я сделал это, и я уверен. Я разработал 15 приложений для iPhone 5, но это первый раз, когда он не работает. –

0

попробовать это

#include <sys/sysctl.h> 

-(NSString *)getModel { 
size_t size; 
sysctlbyname("hw.machine", NULL, &size, NULL, 0); 
char *model = malloc(size); 
sysctlbyname("hw.machine", model, &size, NULL, 0); 
NSString *deviceModel = [NSString stringWithCString:model encoding:NSUTF8StringEncoding]; 
free(model); 
return deviceModel; 
} 

это Link должно помочь