【问题标题】:How to detect iOS device programmatically如何以编程方式检测 iOS 设备
【发布时间】:2012-06-18 11:31:43
【问题描述】:

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

【问题讨论】:

  • 只是出于好奇,为什么要知道是armv6还是armv7?
  • 我在我的项目中添加了一些功能,它会导致 armv6 设备 (iPhone3G) 上的崩溃。我知道,问题出在处理器的架构上,但还不知道如何解决它。所以我决定做一个开关,在我试图让应用在所有设备上运行时关闭旧设备上的这个功能

标签: iphone device armv7


【解决方案1】:

下载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;
}

【讨论】:

  • 谢谢!那和@Michael Dautermann 的答案正是我所需要的!
  • 嗯,你没有说 -platformString 是来自 there 的 uidevice 的一个类别;)
  • -1 [[UIDevice currentDevice] platformString] 对我不起作用。
  • 我忘了说你必须下载这个github.com/erica/uidevice-extension
  • 撤销了我的 -1 并编辑了您的帖子以在顶部发布带有代码块的 url(这样一目了然更有帮助)。
【解决方案2】:

如果你真的想知道(在运行时)你是在 arm6 还是 arm7 上运行,你可以使用“NXGetArchInfoFromCPUType”(much more detail is available in the accepted answer to this question)。

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

【讨论】:

  • 我说的有侵略性吗?我的意思是“该死,你回答得超级快”。可能再过一个月左右,你就会在积分方面赶上我。
  • 感谢您的链接,这将非常有帮助!顺便说一句,你们俩都回答得很快
  • @MichaelDautermann 我希望我能达到 10K 感谢您的鼓励 :) ,medvedNick 不客气
猜你喜欢
  • 2020-01-02
  • 2011-01-14
  • 2011-12-19
  • 2023-04-11
  • 1970-01-01
  • 2014-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多