Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>From <a href="http://iphonedevelopment.blogspot.com/2009/05/device-detection.html" rel="nofollow noreferrer">iphonedevelopment.blogspot.com</a></p> <pre><code>#import &lt;sys/utsname.h&gt; enum { MODEL_IPHONE_SIMULATOR, MODEL_IPOD_TOUCH, MODEL_IPHONE, MODEL_IPHONE_3G }; @interface DeviceDetection : NSObject + (uint) detectDevice; + (NSString *) returnDeviceName:(BOOL)ignoreSimulator; @end @implementation DeviceDetection + (uint) detectDevice { NSString *model= [[UIDevice currentDevice] model]; // Some iPod Touch return "iPod Touch", others just "iPod" NSString *iPodTouch = @"iPod Touch"; NSString *iPodTouchLowerCase = @"iPod touch"; NSString *iPodTouchShort = @"iPod"; NSString *iPhoneSimulator = @"iPhone Simulator"; uint detected; if ([model compare:iPhoneSimulator] == NSOrderedSame) { // iPhone simulator detected = MODEL_IPHONE_SIMULATOR; } else if ([model compare:iPodTouch] == NSOrderedSame) { // iPod Touch detected = MODEL_IPOD_TOUCH; } else if ([model compare:iPodTouchLowerCase] == NSOrderedSame) { // iPod Touch detected = MODEL_IPOD_TOUCH; } else if ([model compare:iPodTouchShort] == NSOrderedSame) { // iPod Touch detected = MODEL_IPOD_TOUCH; } else { // Could be an iPhone V1 or iPhone 3G (model should be "iPhone") struct utsname u; // u.machine could be "i386" for the simulator, "iPod1,1" on iPod Touch, "iPhone1,1" on iPhone V1 &amp; "iPhone1,2" on iPhone3G uname(&amp;u); if (!strcmp(u.machine, "iPhone1,1")) { detected = MODEL_IPHONE; } else { detected = MODEL_IPHONE_3G; } } return detected; } + (NSString *) returnDeviceName:(BOOL)ignoreSimulator { NSString *returnValue = @"Unknown"; switch ([DeviceDetection detectDevice]) { case MODEL_IPHONE_SIMULATOR: if (ignoreSimulator) { returnValue = @"iPhone 3G"; } else { returnValue = @"iPhone Simulator"; } break; case MODEL_IPOD_TOUCH: returnValue = @"iPod Touch"; break; case MODEL_IPHONE: returnValue = @"iPhone"; break; case MODEL_IPHONE_3G: returnValue = @"iPhone 3G"; break; default: break; } return returnValue; } @end </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload