tipos saber prenderlo modelos modelo cómo cuál cuantos como caracteristicas a1586 a1428 ios iphone

ios - prenderlo - ¿Cómo saber si su código se está ejecutando en un iPhone o un iPhone3G?



tipos de iphone 5 (3)

El iPhone ejecuta OS X. Here''s explica cómo determinar su plataforma de hardware en un escritorio de Macintosh. Así Here''s como en un iPhone. Es exactamente lo mismo.

En resumen, sysctlbyname("hw.machine", str, sz, 0, 0) escribirá el nombre de la plataforma en str . Esto pasa a ser "iPhone1,1" o "iPhone1,2" para el iPhone y el iPhone 3G respectivamente.

Estoy tratando de determinar si mi código se está ejecutando en un iPhone o un iPhone3G. Mi primer intento fue usar la clase UIDevice en UIKit, pero tanto iPhone como iPhone3G devuelven las mismas respuestas:

NSLog([[UIDevice currentDevice] name]); // Name of the phone as named by user NSLog([[UIDevice currentDevice] uniqueIdentifier]); // A GUID like string NSLog([[UIDevice currentDevice] systemName]); // "iPhone OS" NSLog([[UIDevice currentDevice] systemVersion]); // "2.2.1" NSLog([[UIDevice currentDevice] model]); // "iPhone" on both devices NSLog([[UIDevice currentDevice] localizedModel]); // "iPhone" on both devices

Esos son los únicos parámetros que UIDevice le permite consultar.

Busqué un poco en Foundation Framework pero aún no he encontrado las llamadas adecuadas.

Estoy seguro de que hay una pieza de hardware que puedo consultar (como algo en los servicios de ubicación) pero parece un hack. ¿Alguien sabe una forma sencilla de determinar esto?


Mi conjetura es que hay una funcionalidad en el iPhone que no está en el iPhon3G que le preocupa a su software. Mi sugerencia es consultar sobre ese hardware específico en lugar de cambiar el comportamiento del software según la plataforma.

Por ejemplo. En lugar de verificar la disponibilidad del GPS, pregunte si es una pregunta de iPhone o iPhone3G acerca de la disponibilidad del GPS y vaya desde allí. De esa manera, su código funcionará en cualquier plataforma (iphone / ipod touch / iphone 3G)


No soy un desarrollador de iPhone, pero buscar la plataforma subyacente en lugar de las capacidades de la plataforma es casi siempre la elección equivocada. Si el iPhone obtiene la funcionalidad que necesita, aún no podrá ejecutar. También existe la posibilidad de que tomes una decisión equivocada en el próximo iPhone 4.0 (o como se llame).