我似乎无法用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>
当我尝试访问newValue
或newKey
时,我得到EXC_BAD_ACCESS
。
有什么想法吗?
答案 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
}
}