2016-12-04 4 views
0

J'ai des tests instantanés qui sont par appareil. Je veux vérifier dans mes tests que je cours sur un simulateur particulier qui a un snapshot pour cela. Par exemple, je veux tester que le simulateur actuel est iPhone6sPlus9.2 puisque l'instantané n'a pas été enregistré pour les nombreux autres types de simulateur que j'ai.Comment vérifier si je cours sur iPhone6s Plus simulateur

J'ai essayé de nombreuses variantes comme:

(lldb) po [[UIDevice currentDevice] platform] 
x86_64 

(lldb) po [[UIDevice currentDevice] hwmodel] 
MacBookPro11,2 

(lldb) po [[UIDevice currentDevice] platformType] 
0x0000000000000002 

(lldb) po [[UIDevice currentDevice] platformString] 
iPhone Simulator 

(lldb) po [[UIDevice currentDevice] model] 
iPhone 

(lldb) po [[UIDevice currentDevice] localizedModel] 
iPhone 

(lldb) po [[UIDevice currentDevice] systemName] 
iPhone OS 

(lldb) po [[UIDevice currentDevice] systemVersion] 
9.2 

(lldb) po [UIDevice currentDevice] 
<UIDevice: 0x7fccf060a480> 

(lldb) po [[UIDevice currentDevice] name] 
iPhone Simulator // I WANT TO KNOW THAT IT IS IPHONE6SPLUS 9.2 

ainsi que le code d'ici https://github.com/erica/uidevice-extension/

et le code de

// UIDevice + YYAdd.h // YYKit https://github.com/ibireme/YYKit

mais les deux retournent des valeurs non pertinentes telles que "x86" pour le type de périphérique.

+1

http://stackoverflow.com/questions/26028918/ios-how-to-determine-iphone-model-in- swift – ColdSteel

+0

Pas bon. C'est un appareil physique. J'ai besoin du type de simulateur –

+0

Est-ce que ma réponse a fonctionné pour vous? –

Répondre

0

Essayez [NSProcessInfo processInfo].environment[@"SIMULATOR_MODEL_IDENTIFIER"]

Il retournera iPhone8,2 pour le iPhone6s plus Simulator.

Attention: Vous pouvez avoir vos raisons d'écrire du code sur un modèle de simulateur spécifique, mais ce n'est généralement pas une bonne idée. Vous devez plutôt adapter dynamiquement les tailles d'écran, vérifier la disponibilité des API/Frameworks et ainsi de suite ...