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

时间:2012-06-18 11:31:44

标签: iphone device armv7

我需要知道哪个iOS设备当前正在运行app(更准确地说我需要知道的是设备armv6或armv7)。 UIUserInterfaceIdiomPad()无法检查设备是iPhone4S还是iPhone3G。有可能吗?

2 个答案:

答案 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给他!)。