在我的项目中
QuartzCore CA :: Layer :: set_bounds(CA :: Rect const&,bool)
从Fabric中,我收到以下消息。
抬起头! CALayerInvalidGeometry; CALayer边界包含NaN:[...] 细节: 崩溃可能是由于将变换应用于视图或图层时被零除。在Xcode中设置'CG_NUMERICS_SHOW_BACKTRACE'环境变量可以帮助查明根本原因。请查看以下参考资料以了解更多详细信息。 外部资源: 由于“ CALayer边界包含NaN:[nan 0; nan 15.1] 'CALayerInvalidGeometry',原因:“ CALayer边界包含NaN”异常 由于未捕获的异常“ CALayerInvalidGeometry”而终止应用,原因:“ CALayer位置包含NaN:[nan nan]”#15
如何解决此崩溃问题?
下面,我共享项目中的 UserDefaults-AppLocale.swift 类。
extension UserDefaults {
private enum Key : String {
case languageCode = "LanguageCode"
case regionCode = "RegionCode"
}
static var languageCode: String? {
get {
let defs = UserDefaults.standard
return defs.string(forKey: Key.languageCode.rawValue)
}
set(value) {
let defs = UserDefaults.standard
if let value = value {
defs.set(value, forKey: Key.languageCode.rawValue)
return
}
defs.removeObject(forKey: Key.languageCode.rawValue) // Line 29
}
}
static var regionCode: String? {
get {
let defs = UserDefaults.standard
return defs.string(forKey: Key.regionCode.rawValue)
}
set(value) {
let defs = UserDefaults.standard
if let value = value {
defs.set(value, forKey: Key.regionCode.rawValue)
return
}
defs.removeObject(forKey: Key.regionCode.rawValue)
}
}
}
这是该结构上的第29行。
defs.removeObject(forKey: Key.languageCode.rawValue)