Each product of Apple has several types, from iphone to ipod and ipad, and each product has several types, from iphone 2g to iphone 5, from iPod touch5 to iPod touch5, from ipad1 to ipad4, nothing else can do. But how do I detect these types in ios development? The method below is the method given in the csdn q & a. For the original problem, see: http://ask.csdn.net/questions/997 [plain]-(NSString *) platformString {// Gets a string with the device model 6 size_t size; sysctlbyname ("hw. machine ", NULL, & size, NULL, 0); char * machine = malloc (size); sysctlbyname (" hw. machine ", machine, & size, NULL, 0); NSString * platform = [NSString stringWithCString: machine encoding: NSUTF8StringEncoding]; free (machine); if ([platform is1_tostring: @ "iPhone1, 1"]) return @ "iPhone 2G"; if ([platform isEqualToString: @ "iPhone1, 2"]) return @ "iPhone 3G "; if ([platform isEqualToString: @ "iPhone2, 1"]) return @ "iPhone 3GS"; if ([platform isEqualToString: @ "iPhone3, 1"]) return @ "iPhone 4"; if ([platform isEqualToString: @ "iPhone3, 2"]) return @ "iPhone 4"; if ([platform isEqualToString: @ "iPhone3, 3 "]) return @" iPhone 4 (CDMA) "; if ([platform isEqualToString: @" iPhone4, 1 "]) return @" iPhone 4 S "; if ([platform isEqualToString: @ "iPhone5, 1"]) return @ "iPhone 5"; if ([platform isEqualToString: @ "iPhone5, 2"]) return @ "iPhone 5 (GSM + CDMA)"; if ([platform isEqualToString: @ "iPod1, 1"]) return @ "iPod Touch (1 Gen )"; if ([platform isEqualToString: @ "iPod2, 1"]) return @ "iPod Touch (2 Gen)"; if ([platform isEqualToString: @ "iPod3, 1"]) return @ "iPod Touch (3 Gen)"; if ([platform isEqualToString: @ "iPod4, 1"]) return @ "iPod Touch (4 Gen )"; if ([platform isEqualToString: @ "iPod5, 1"]) return @ "iPod Touch (5 Gen)"; if ([platform isEqualToString: @ "iPad1, 1"]) return @ "iPad"; if ([platform isEqualToString: @ "iPad1, 2"]) return @ "iPad 3G"; if ([platform isEqualToString: @ "iPad2, 1 "]) return @" iPad 2 (WiFi) "; if ([platform isdesktostring: @" iPad2, 2 "]) return @" iPad 2 "; if ([platform isEqualToString: @ "iPad2, 3"]) return @ "iPad 2 (CDMA)"; if ([platform isEqualToString: @ "iPad2, 4"]) return @ "iPad 2"; if ([platform isEqualToString: @ "iPad2, 5"]) return @ "iPad Mini (WiFi)"; if ([platform isEqualToString: @ "iPad2, 6"]) return @ "iPad Mini"; if ([platform isEqualToString: @ "iPad2, 7"]) return @ "iPad Mini (GSM + CDMA) "; if ([platform isEqualToString: @" iPad3, 1 "]) return @" iPad 3 (WiFi) "; if ([platform isEqualToString: @" iPad3, 2 "]) return @ "iPad 3 (GSM + CDMA)"; if ([platform isstring tostring: @ "iPad3, 3"]) return @ "iPad 3"; if ([platform isEqualToString: @ "iPad3, 4"]) return @ "iPad 4 (WiFi)"; if ([platform isEqualToString: @ "iPad3, 5"]) return @ "iPad 4 "; if ([platform isEqualToString: @ "iPad3, 6"]) return @ "iPad 4 (GSM + CDMA)"; if ([platform isEqualToString: @ "i386"]) return @ "Simulator"; if ([platform isEqualToString: @ "x86_64"]) return @ "Simulator"; return platform ;}