2009-10-09 6 views

Répondre

22

Que vous soyez sur un iPhone ou un iPod Touch:

UIDevice *device = [UIDevice currentDevice]; 
NSString *systemName = [device systemName]; 

Pour détecter la version du système d'exploitation:

UIDevice *device = [UIDevice currentDevice]; 
NSString *systemVersion = [device systemVersion]; 

Pour détecter un modèle spécifique, vous devez tester pour certains capacité que seul ce modèle a, pour ainsi détecter un iPhone 3GS, vérifier une capacité vidéo sur l'appareil photo:

#define SOURCETYPE UIImagePickerControllerSourceTypeCamera 

// does the device have a camera? 
if ([UIImagePickerController isSourceTypeAvailable:SOURCETYPE]) { 
    // if so, does that camera support video? 
    NSArray *mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:SOURCETYPE]; 
    bool isA3GS = [mediaTypes containsObject:kUTTypeMovie]; 
} 
+0

cette ligne affiche une erreur [mediatypes containsObject: kUTTypeMovie]; erreur: 'kUTTypeMovie' non déclaré –

+5

L'un des éléments suivants le corrige. 1) Ajouter l'infrastructure MobileCoreServices à votre projet 2) Ajoutez #import au fichier d'en-tête où vous référencerez le sélecteur. Vous pouvez également ajouter l'importation à votre fichier d'en-tête précompilé (.pch) afin que les constantes UTCoreTypes soient disponibles dans tout le projet. – mmc

+2

dans mon expérience, vous devez faire à la fois 1 et 2. – erich

9

A partir du fichier UIDevice.h:

[[UIDevice currentDevice] name]    // e.g. "My iPhone" 
[[UIDevice currentDevice] model]    // e.g. @"iPhone", @"iPod Touch" 
[[UIDevice currentDevice] localizedModel] // localized version of model 
[[UIDevice currentDevice] systemName]  // e.g. @"iPhone OS" 
[[UIDevice currentDevice] systemVersion]  // e.g. @"2.0" 
[[UIDevice currentDevice] uniqueIdentifier] // a string unique to each device based on various hardware info. 
+0

Je cours mon application dans iPhone 2g mais il retourne seulement iPhone pas iPhone 2g. ici nous le code NSString * uniqueIdentifier = [[UIDevice currentDevice] uniqueIdentifier]; \t NSString * Modal = [[UIDevice currentDevice] localiséeModèle]; –

+0

vous pouvez utiliser le modèle [[UIDevice currentDevice]] –

19

Voici une classe écrite par Erica Sadun qui offre des capacités étendues pour cela:

http://github.com/erica/uidevice-extension/blob/master/UIDevice-Hardware.m

Vérifiez le reste du repo - il y a quelques classes de plus qui s'avèreraient vraiment utiles pour l'interrogation de périphériques à granularité fine.

+1

Celui-ci est encore meilleur! Super pour être en mesure de récupérer la taille maximale de la mémoire, etc Erica Sadun a quelques classes très utiles. Merci d'avoir lié à cela! –

+0

Merci, c'est génial! –

0

Ce que vous cherchez est le suivant:

UIDevice *device = [UIDevice currentDevice]; 
NSString *model = [device model]; 

Cela renverra si l'appareil est un iPhone ou iPod touch

Questions connexes