构造错误:QuartzCore(CA :: Layer :: set_bounds(CA :: Rect const&,bool))

时间:2018-08-03 09:46:01

标签: ios swift calayer quartz-core

在我的项目中

  

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

如何解决此崩溃问题?

下面,我分享了我从Fabric获得的崩溃的屏幕截图。 Fabric screenshot

下面,我共享项目中的 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)

0 个答案:

没有答案