Is it possible to distinguish an iPhone 3G from an iPhone 3G S using any of the properties of [UIDevice currentDevice]?
+5
A:
The best way to check is to use sysctlbyname("hw.machine", ...)
as per http://stackoverflow.com/questions/688001/how-to-tell-if-your-code-is-running-on-an-iphone-or-an-iphone3g/688171#688171
The returned result for 3GS should be "iPhone2,1"
Stobor
2009-06-22 09:37:10
Also, see http://arstechnica.com/apple/guides/2009/03/iphone-dev-determining-your-platform.ars (although you'll still have to add the 2,1 result for the 3GS).
Stobor
2009-06-22 09:38:37
+1
A:
I don't believe so - nor even 1G phones from 3G. You have to use sysctls to get more detailed model info.
E.g. see here
frankodwyer
2009-06-22 09:38:22