Iphone 如何以编程方式检测iOS设备
我需要知道哪个iOS设备当前正在运行应用程序(更确切地说,我需要知道的是设备armv6或armv7)。UIUserInterfaceIdiomPad()无法检查设备是否为iPhone4S或iPhone3G。有可能吗?下载(UIDevice硬件类),您可以使用这些:Iphone 如何以编程方式检测iOS设备,iphone,device,armv7,Iphone,Device,Armv7,我需要知道哪个iOS设备当前正在运行应用程序(更确切地说,我需要知道的是设备armv6或armv7)。UIUserInterfaceIdiomPad()无法检查设备是否为iPhone4S或iPhone3G。有可能吗?下载(UIDevice硬件类),您可以使用这些: [UIDevice currentDevice] platformType] // returns UIDevice4GiPhone [[UIDevice currentDevice] platformString] // ret
[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;
}
如果您确实想知道(在运行时)您是在arm6还是arm7上运行,可以使用“
nxGetArchinformCPutype
”()
否则,您可以使用platformType或platformString,正如我们的朋友Omar所建议的那样(并向他建议+1!)。只是出于好奇,为什么您需要知道它是armv6还是armv7?我在我的项目中添加了一些功能,这会导致armv6设备(iPhone3G)崩溃。我知道,问题出在处理器的架构上,但还不知道如何解决它。所以我决定做一个开关,当我试图让应用程序在所有设备上运行时,在旧设备上关闭这个功能。我说的是侵略性吗?我的意思是“该死,你回答得太快了”。大概再过一个月左右,你会在积分方面赶上我。谢谢你的链接,这将非常有帮助!顺便说一句,你们俩的回答都很快way@MichaelDautermann我希望我能达到10公里,谢谢你的鼓励:),梅德韦德尼克,你很好!这和@Michael Dautermann的答案正是我所需要的!嗯,您没有说-platformString是uidevice from的一个类别;)-1
[[UIDevice currentDevice]platformString]
对我不起作用。我忘了提到你必须下载这个已撤销的my-1,并编辑你的帖子,将url与代码块一起发布在顶部(这样一看更有用)。