在模拟器上检测iPhone 6/Plus时遇到问题

Mc.*_*ver 14 iphone xcode objective-c ios

我正在尝试专门为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);
Run Code Online (Sandbox Code Playgroud)

所以这里是如何检测iPhone 6和6Plus(纵向模式):

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

#define iPhone6Plus ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && [UIScreen mainScreen].bounds.size.height == 736)
Run Code Online (Sandbox Code Playgroud)

问题是 !当我在iPhone6/Plus模拟器上吃午餐时,编译器会给我一些iPhone 4"显示屏的信息:

    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
Run Code Online (Sandbox Code Playgroud)

但它在新项目上运行良好!(我不能创建一个新项目并重新开始!).我cleaned code,delete build folder,change project's name,和复位Simulator contents setting,但仍然给我的4"显示的信息!

我已经检查了这个问答,但答案需要一个真实的设备!

Mc.*_*ver 21

我遇到这个问题的主要原因是我用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)
Run Code Online (Sandbox Code Playgroud)