¿Cómo detectar exactamente el model iDevice?

Quiero detectar qué iDevice el usuario y luego poner el device name del device name en un UILabel . Con el siguiente código, la aplicación detecta solo el iPhone / iPad / iPod. Me gusta tener iPhone 4 / iPod 3G / iPad 1G … o los nombres exactos (iPhone 3.1 / iPod 2.0 / iPad 2.4) …

aquí está mi código:

 iDevice.text = [UIDevice currentDevice]. localizedModel; 

Intenté esto para

 iDevice.text = [UIDevice currentDevice]. model; 

pero callejuelas dice iPhone y me gusta iPhone 3.1

Ok, entonces parece que el método que querrás usar es usar la categoría creada por Erica Sadun ubicada en https://github.com/erica/uidevice-extension/

Antes de entrar en cómo usarlo, pasaré un poco de información sobre las categorías. Apple proporciona documentation sobre categorías aquí http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/chapters/occategories.html

Puede agregar methods a una class declarándolos en un file de interfaz bajo un nombre de categoría y definiéndolos en un file de implementación bajo el mismo nombre. El nombre de la categoría indica que los methods son adiciones a una class declarada en otro lugar, no una class nueva. Sin embargo, no puede usar una categoría para agregar variables de instancia adicionales a una class.

Descargue el proyecto de github y agregue estos dos files a su proyecto:

 UIDevice-Hardware.h UIDevice-Hardware.m 

Los methods que usará serán uno de estos:

 - (NSString *) platform; - (NSString *) hwmodel; - (NSUInteger) platformType; - (NSString *) platformString; 

Entonces querrá importar UIDevice-Hardware.h en el file donde desea usar el método. Utilizaría el método para devolver un valor de NSString y asignar el valor a una label, por lo que haría algo similar a

 mylabel.text = [[UIDevice currentDevice] platformString] 

Aquí hay otro enlace que tiene una buena introducción a las categorías: http://mobile.tutsplus.com/tutorials/iphone/objective-c-categories/

EDITAR: MUESTRA DE IMÁGENES USANDO EL SIMULADOR DE DISPOSITIVO: introduzca la descripción de la imagen aquí Nota: también tiene #import "UIDevice-Hardware.h" sobre mi línea de @interface.