我试图在协议扩展中投射“自我”。它在真实设备上运行时因 EXC_BAD_ACCESS 错误而崩溃,但在模拟器上运行良好。我应该怎么做才能完成这项工作?谢谢
我的整个代码:
protocol SomeProtocol: class {
}
protocol DataSetEditable {
func add(_ data: Data)
}
extension DataSetEditable where Self: SomeClass {
func add(_ data: Data) {
print(data)
if let someProtocol = self as? SomeProtocol {
print(someProtocol)
//do some extra works
}
}
}
class SomeClass: UIView {
}
class MyClass: SomeClass, DataSetEditable, SomeProtocol {
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let myClass = MyClass()
myClass.add(Data())
}
}