子类Crashlytics

时间:2016-01-15 16:43:23

标签: ios swift crashlytics

我似乎无法用Swift继承Crashlytics。我的Mock对象看起来像这样:

class MockCrashlytics: Crashlytics {
    var newValue: AnyObject?
    var newKey: String?

    override func setObjectValue(value: AnyObject?, forKey key: String) {
        newValue = value
        newKey = key
    }
}

但是,如果我实例化这个类,我会得到超类。

调试器示例:

po MockCrashlytics()
<Crashlytics: 0x7fff4188cb30>

我希望:

po MockCrashlytics()
<MockCrashlytics: 0x7fff4188cb30>

当我尝试访问newValuenewKey时,我得到EXC_BAD_ACCESS

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

显然Crashlytics不应该是子类。似乎某些机制阻止了正确的子类化,因此开发人员不会篡改他们的代码。

此信息由Crashlytics / Fabric.io的帮助台提供。

答案 1 :(得分:0)

您可以创建一个包含类型为Crashlytics的字段变量的包装类。将newValue和newKey的变量添加到包装类中。

class crashWrapper {

    var newValue: AnyObject?
    var newKey: String?
    //or whatever the correct way to init Crashlytics is
    var crashlytics = Crashlytics()

    override func setObjectValue(value: AnyObject?, forKey key: String) {
        newValue = value
        newKey = key
    }

}