Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在模拟器上检测iPhone 6/Plus有问题_Ios_Objective C_Iphone_Xcode - Fatal编程技术网

Ios 在模拟器上检测iPhone 6/Plus有问题

Ios 在模拟器上检测iPhone 6/Plus有问题,ios,objective-c,iphone,xcode,Ios,Objective C,Iphone,Xcode,我正在尝试为iPhone 6和6 Plus专门构建一个应用程序版本,但我没有任何硬件,我必须在模拟器上进行测试!但看起来,模拟器有一个奇怪的错误!首先,对于大多数情况,我通过以下代码获得屏幕分辨率和比例: UIScreen *mainScreen = [UIScreen mainScreen]; NSLog(@"Screen bounds: %@, Screen resolution: %@, scale: %f, nativeScale: %f", NSStringFrom

我正在尝试为iPhone 6和6 Plus专门构建一个应用程序版本,但我没有任何硬件,我必须在模拟器上进行测试!但看起来,模拟器有一个奇怪的错误!首先,对于大多数情况,我通过以下代码获得屏幕分辨率和比例:

    UIScreen *mainScreen = [UIScreen mainScreen];
NSLog(@"Screen bounds: %@, Screen resolution: %@, scale: %f, nativeScale: %f",
      NSStringFromCGRect(mainScreen.bounds), mainScreen.coordinateSpace, mainScreen.scale, mainScreen.nativeScale);
下面是如何检测iPhone 6和6Plus(纵向模式):

问题是!当我在iPhone6/Plus模拟器上使用我的应用程序时,编译器会向我提供iPhone4“显示屏的sceen信息:

    2014-09-28 12:32:08.153 WOD[2924:42290] 
Screen bounds: {{0, 0}, {320, 568}}, Screen resolution: <UIScreen: 0x7fa15be0f9b0; bounds = {{0, 0}, {320, 568}}; mode = <UIScreenMode: 0x7fa15bd0d4a0; 
size = 640.000000 x 1136.000000>>, scale: 2.000000, nativeScale: 2.000000
2014-09-2812:32:08.153世界杯[2924:42290]
屏幕边界:{0,0},{320568},屏幕分辨率:,比例:2.000000,nativeScale:2.000000
但它在新项目上运行良好!(我无法创建新项目并重新开始!)。 我
清理代码
删除生成文件夹
更改项目名称
,并重置
模拟器内容设置
,但仍然提供4“显示信息


我已经检查过了,但答案需要一个真正的设备

我遇到这个问题的主要原因是我用
Xcode 5
构建应用程序,然后用
Xcode 6
打开它

解决方案:

添加Retina HD 5.5和4.7的发布图像:

现在,您可以在模拟器上检测iPhone 6/Plus,而无需使用真正的设备:

#define iPhone6 ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 667)
 #define iPhone6Plus ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 736)

如果您需要在横向中检测到iPhone 6/6Plus,请使用此选项

 #define iPhone6 ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 667)
 #define iPhone6Plus ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 736)

您在xcode 5中创建了此项目,并在6中打开。。。是吗?@FahimParkar是的,我做到了!您是否尝试添加启动屏幕?甚至主板也不错。为iphone 6添加启动屏幕。。。你可能会得到合适的尺寸…嗯。。。午餐屏幕?当iPhone5出现时也发生了同样的事情。。。这是唯一的解决办法。。。但我忘记了:D:)您需要添加正确大小的图像,或者必须使用启动屏幕
 #define iPhone6 ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 667)
 #define iPhone6Plus ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && MAX([UIScreen mainScreen].bounds.size.height,[UIScreen mainScreen].bounds.size.width) == 736)