2009-10-09 18 views

Respuesta

22

Si usted está en un iPhone o un iPod Touch:

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

para detectar la versión del sistema operativo:

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

para detectar un modelo específico, usted tendría que poner a prueba para algunos capacidad que solo ese modelo tiene, por lo tanto, para detectar un iPhone 3GS, verifique la capacidad de video en la cámara:

#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

esta línea muestra un error [mediaTypes containsObject: kUTTypeMovie]; error: 'kUTTypeMovie' no declarado –

+5

Cualquiera de los siguientes lo solucionará. 1) Agregue la infraestructura MobileCoreServices a su proyecto 2) Agregue #import al archivo de encabezado donde hará referencia al selector. Alternativamente, puede agregar la importación a su archivo de encabezado precompilado (.pch) para que las constantes UTCoreTypes estén disponibles en todo el proyecto. – mmc

+2

en mi experiencia necesitas hacer tanto 1 como 2. – erich

9

Desde el archivo 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

ejecuto mi aplicación en 2g iPhone pero devuelve solo iPhone no iPhone 2g. aquí el código NSString * uniqueIdentifier = [[UIDevice currentDevice] uniqueIdentifier]; \t NSString * Modal = [[UIDevice currentDevice] localizedModel]; –

+0

puede usar el modelo [[UIDevice currentDevice]] –

19

Aquí es una clase escrita por Erica Sadun que proporciona amplias capacidades para esto:

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

ver el resto de la repo - hay una algunas clases más que demostrarían ser realmente útiles para la consulta de dispositivos de grano fino.

+1

¡Este es aún mejor! Genial para poder recuperar el tamaño máximo de la memoria, etc. Erica Sadun tiene algunas clases muy útiles. ¡Gracias por vincular esto! –

+0

¡Gracias, esto es genial! –

0

Lo que se busca es la siguiente:

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

Esto devolverá si el dispositivo es un iPhone o iPod touch

Cuestiones relacionadas