Iphone 如何以编程方式检测iOS设备

Iphone 如何以编程方式检测iOS设备,iphone,device,armv7,Iphone,Device,Armv7,我需要知道哪个iOS设备当前正在运行应用程序(更确切地说,我需要知道的是设备armv6或armv7)。UIUserInterfaceIdiomPad()无法检查设备是否为iPhone4S或iPhone3G。有可能吗?下载(UIDevice硬件类),您可以使用这些: [UIDevice currentDevice] platformType] // returns UIDevice4GiPhone [[UIDevice currentDevice] platformString] // ret

我需要知道哪个iOS设备当前正在运行应用程序(更确切地说,我需要知道的是设备armv6或armv7)。UIUserInterfaceIdiomPad()无法检查设备是否为iPhone4S或iPhone3G。有可能吗?

下载(UIDevice硬件类),您可以使用这些:

[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与代码块一起发布在顶部(这样一看更有用)。