我創建了一個基於iOS的應用程序,在本功能調用崩潰在viewDidLoad中()的樣本單頁迅速語言設備 -UI_USER_INTERFACE_IDIOM()崩潰的應用程序分佈在ONLY
func regularFont() -> UIFont {
var fontSize : CGFloat = (UI_USER_INTERFACE_IDIOM() == .Pad) ? 15 : 12
return UIFont.systemFontOfSize(fontSize)
}
但是,一旦我更換此UI_USER_INTERFACE_IDIOM()與蘋果推薦使用UIDevice()方法,它工作正常。
func regularFont() -> UIFont {
var fontSize : CGFloat = (UIDevice().userInterfaceIdiom == .Pad) ? 15 : 12
return UIFont.systemFontOfSize(fontSize)
}
所述的碰撞發生在我測試的所有設備 - iPhone 5S,iPhone 6和ipad空氣(所有iOS上8.x中)和它發生ONLY上的設備,NOT模擬器。
PS:該應用程序通過我們的OTA /網頁鏈接安裝在所有設備上。
令我驚訝的是,我們有另一個客觀的基於C語言的應用程序在蘋果的App Store上使用UI_USER_INTERFACE_IDIOM()大量定期更新......但從來沒有因此崩潰。
有什麼想法?
同意,我們應該使用UIDevice var/property。但是,對你的答案只是一點技術性的修正 - 它不是一個宏,而是UIDevice.h中定義的「靜態內聯」函數,並且在類的快速版本中有func聲明。 – Ashok
我欠你的理智:今天我第一次編譯發佈,而不是調試,我的應用程序崩潰得這麼辛苦......當我在網上尋找答案時,發現[this](http:// openradar .appspot.com的/ 21175489)。 Xcode 7 beta 2中修復的事實並不能幫助我,因爲我想在下個月推出......所以,我知道評論並不是爲了感謝,而是你保存了我的一天! – cdf1982
啊,不客氣,兄弟。你讓我今天有了一個好的開始。 –