Tener problema con detectar iPhone 6 / Plus en el simulador

Estoy tratando de crear una versión de mi aplicación específicamente para iPhone 6 y 6 Plus, mientras que no tengo ningún hardware, ¡tengo que probar en el simulador! ¡Pero parece que el simulador tiene un extraño error! primero y para la mayoría de las resoluciones y escalas de pantalla, con este código:

UIScreen *mainScreen = [UIScreen mainScreen]; NSLog(@"Screen bounds: %@, Screen resolution: %@, scale: %f, nativeScale: %f", NSStringFromCGRect(mainScreen.bounds), mainScreen.coordinateSpace, mainScreen.scale, mainScreen.nativeScale); 

así que aquí es cómo detectar iPhone 6 y 6 Plus (modo vertical):

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

el problema es ! cuando almuerce mi aplicación en el simulador iPhone6 ​​/ Plus, el comstackdor me da la información de pantalla del 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 

¡Pero funciona bien en un nuevo proyecto! (¡No puedo crear un nuevo proyecto y comenzar de nuevo!). cleaned code , delete build folder , change project's name y restablezca la Simulator contents setting pero aún así me proporciona la información de pantalla de 4 ".

¡He verificado esta Q / A, pero las respuestas requieren un dispositivo real!

La razón principal por la que me enfrenté con este problema fue que construí mi aplicación con Xcode 5 y la abrí con Xcode 6

Solución:

Agregar image de inicio para Retina HD 5.5 y 4.7:

introduzca la descripción de la imagen aquí

Ahora puede detectar iPhone 6 / Plus en el simulador sin tener un dispositivo real:

 #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) 

En caso de que necesite detectar el iPhone 6/6 Plus en el paisaje, use esto.

  #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)