子类 Crashlytics
Subclass Crashlytics
我似乎无法将 class Crashlytics 替换为 Swift。我的 Mock 对象如下所示:
class MockCrashlytics: Crashlytics {
var newValue: AnyObject?
var newKey: String?
override func setObjectValue(value: AnyObject?, forKey key: String) {
newValue = value
newKey = key
}
}
但是,如果我实例化这个 class,我会得到超级 class。
调试器示例:
po MockCrashlytics()
<Crashlytics: 0x7fff4188cb30>
我预计:
po MockCrashlytics()
<MockCrashlytics: 0x7fff4188cb30>
当我尝试访问 newValue
或 newKey
时,我得到 EXC_BAD_ACCESS
.
有什么想法吗?
显然 Crashlytics 不应该被子类化。似乎某种机制阻止了正确的子类化,因此开发人员不会篡改他们的代码。
此信息由 Crashlytics/Fabric.io 的服务台提供。
您可以创建一个包装器 class 来保存 Crashlytics 类型的字段变量。将 newValue 和 newKey 的变量添加到包装器 class.
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
}
}
我似乎无法将 class Crashlytics 替换为 Swift。我的 Mock 对象如下所示:
class MockCrashlytics: Crashlytics {
var newValue: AnyObject?
var newKey: String?
override func setObjectValue(value: AnyObject?, forKey key: String) {
newValue = value
newKey = key
}
}
但是,如果我实例化这个 class,我会得到超级 class。
调试器示例:
po MockCrashlytics()
<Crashlytics: 0x7fff4188cb30>
我预计:
po MockCrashlytics()
<MockCrashlytics: 0x7fff4188cb30>
当我尝试访问 newValue
或 newKey
时,我得到 EXC_BAD_ACCESS
.
有什么想法吗?
显然 Crashlytics 不应该被子类化。似乎某种机制阻止了正确的子类化,因此开发人员不会篡改他们的代码。
此信息由 Crashlytics/Fabric.io 的服务台提供。
您可以创建一个包装器 class 来保存 Crashlytics 类型的字段变量。将 newValue 和 newKey 的变量添加到包装器 class.
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
}
}