我需要知道哪个iOS设备当前正在运行app(更准确地说我需要知道的是设备armv6或armv7)。 UIUserInterfaceIdiomPad()无法检查设备是iPhone4S还是iPhone3G。有可能吗?
答案 0 :(得分:11)
下载https://github.com/erica/uidevice-extension(UIDevice-Hardware类),您可以使用以下内容:
[UIDevice currentDevice] platformType] // returns UIDevice4GiPhone
[[UIDevice currentDevice] platformString] // returns @"iPhone 4G"
或检查视网膜是否
+ (BOOL) isRetina
{
if([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
return [[UIScreen mainScreen] scale] == 2.0 ? YES : NO;
return NO;
}
或查看iOs版本
+ (BOOL) isIOS5
{
NSString *os5 = @"5.0";
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
// currSysVer = @"5.0.1";
if ([currSysVer compare:os5 options:NSNumericSearch] == NSOrderedAscending) //lower than 4
{
return NO;
}
else if ([currSysVer compare:os5 options:NSNumericSearch] == NSOrderedDescending) //5.0.1 and above
{
return YES;
}
else // IOS 5
{
return YES;
}
return NO;
}
答案 1 :(得分:1)
如果你真的想知道(在运行时)你是在arm6还是arm7上运行,你可以使用“NXGetArchInfoFromCPUType
”(much more detail is available in the accepted answer to this question)。
否则你可以使用platformType或platformString,因为我们非常快速的回答朋友奥马尔建议(和+1给他!)。