0

プロトコル拡張内で「自己」をキャストしようとしていました。実際のデバイスで実行すると 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())
    }
}
4

2 に答える 2