【发布时间】:2023-03-29 04:27:01
【问题描述】:
我创建了一个示例单页基于 Swift 语言的 iOS 应用程序,该应用程序在 viewDidLoad() 中的这个 func 调用上崩溃 -
func regularFont() -> UIFont {
var fontSize : CGFloat = (UI_USER_INTERFACE_IDIOM() == .Pad) ? 15 : 12
return UIFont.systemFontOfSize(fontSize)
}
但是一旦我用 Apple 推荐的 UIDevice() 方法替换了这个 UI_USER_INTERFACE_IDIOM(),它就可以正常工作了。
func regularFont() -> UIFont {
var fontSize : CGFloat = (UIDevice().userInterfaceIdiom == .Pad) ? 15 : 12
return UIFont.systemFontOfSize(fontSize)
}
崩溃发生在我测试的所有设备上 - iPhone 5s、iPhone 6 和 iPad Air(都在 iOS 8.x 上)并且它仅发生在设备上,而不是模拟器。
PS:该应用通过我们的 OTA/网络链接安装在所有设备上。
令我惊讶的是,Apple 的 App Store 上有另一个基于客观 c 语言的应用程序,它大量使用 UI_USER_INTERFACE_IDIOM(),定期更新......但从未因此而崩溃。
有什么想法吗?
【问题讨论】: