3

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

4

2 回答 2

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;
}
于 2012-06-18T11:34:35.430 回答
1

如果您真的想知道(在运行时)您是在 arm6 还是 arm7 上运行,您可以使用“ NXGetArchInfoFromCPUType”(更多详细信息可在此问题的已接受答案中获得)。

否则,您可以使用 platformType 或 platformString,正如我们快速回答的朋友 Omar 建议的那样(并向他 +1!)。

于 2012-06-18T11:35:36.870 回答