0

我正在阅读Apress - Beginning iPad Development for iPhone Developer Mastering the iPad SDK,在一章中我阅读了有关设备检查和作者写道:

“虽然你可能想简单地检查用户的设备类型或操作系统版本,但随着 Apple 不断发布新设备和 iOS 版本,这不是要走的路。更好的方法是使用 NSClassFromString 测试专用 iPad 类的可用性. 如果你传递一个 iPad 专用的类名,比如 UISplitViewController 到 NSClassString 并且一个有效的对象是 returnet,你就会知道用户的设备是一个 iPad.."

我不明白,为什么简单地检查设备类型,例如:

  NSString *device = [[UIDevice currentDevice] model];

  if ([device rangeOfString:@"iPad"].location != NSNotFound ) {
        isIPad = true;
  }
  else isIPad = false;

比检查 ipad 课程更糟糕吗?

4

2 回答 2

8

Apple 检查自己的示例以及启动新的通用应用程序时的方式如下:

-(BOOL) isiPad {
    return UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad;
}

使用模型可能不好的原因是因为您只是在使用字符串比较。虽然我怀疑他们会更改它,但您永远不知道他们何时可能决定更改使用[[UIDevice currentDevice] model]型号或其他东西返回的字符串。

于 2012-09-18T14:59:21.750 回答
-1

可能这个方法对你有帮助

-(int)CheckDevice {

return ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) ? 1 :([[UIScreen mainScreen] bounds].size.height == 568) ? 5 :4;
}

它返回

  • 1 用于 iPad
  • 4 为 iPhone 4
  • 5 为 iPhone 5
于 2014-05-07T13:08:09.647 回答