2014-09-28 4 views
14

Я пытаюсь создать версию своего приложения специально для iPhone 6 и 6 Plus, тогда как у меня нет оборудования, я должен протестировать на симуляторе! но, похоже, у симулятора есть странная ошибка! первый и для большинства я получаю разрешение экрана и весы, с помощью этого кода:Проблема с обнаружением iPhone 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 (Портретный режим):

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

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

проблема! когда я обед мое приложение на iPhone6 ​​/ Plus симулятор, компилятор дает мне информацию о Sceen дисплея 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 

Но она отлично работает над новым проектом (я не могу создать новый проект и начать все заново!) I cleaned code, delete build folder, change project's name и сбросить Simulator contents setting, но все же дает мне информацию о 4-дюймовом дисплее! ,

Я проверил это Q/A, но ответы требуют реального устройства!

+0

Вы создали этот проект в xcode 5 и открываете в 6 ... справа? –

+0

@FahimParkar Да, я сделал! –

+2

Вы пытались добавить экран запуска? Даже MainStoryboard в порядке. – Phillip

ответ

21

Основная причина, я столкнулся с этой проблемой было я строю мое приложение с Xcode 5 и открыть его с помощью Xcode 6

Решение:

Добавить Launch изображение для Retina HD 5.5 и 4.7:

enter image description here

Теперь вы можете обнаружить 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) 
+0

Брат же произошел, когда появился iPhone 5 ... это было единственным решением ... НО Я забыл это: D :) –

+0

Вам нужно добавить изображения с ПРАВАМИ размерами, или вы должны использовать Launch Screen http: // stackoverflow. ком/вопросы/25754942/как к Enable-родное-разрешение-для-приложений-на-Iphone-6-и-6-плюс – onmyway133

2

На всякий случай вам необходимо обнаружить 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) 
Смежные вопросы