1

(Xcode 拡張機能を追加するためのフレームワーク) のクラスに迅速な拡張機能を追加しようとするとXcodeKit、コンパイラはエラーなしで喜んでビルドしますが、コードを実行すると、次の例外が発生します。

-[XCSourceEditorCommandInvocation test]: unrecognized selector sent to instance 0x7fc60543f2b0

以下は、例外を再現できるサンプル コードです。

class SourceEditorCommand: NSObject, XCSourceEditorCommand {
    func perform(with invocation: XCSourceEditorCommandInvocation, completionHandler: @escaping (Error?) -> Void ) -> Void {
        // Call extension method
        invocation.test() // <--- Exception thrown here

        completionHandler(nil)
    }
}

extension XCSourceEditorCommandInvocation {
    func test() {
        print("it works!")
    }
}

過去に問題なく ObjC クラスを迅速に拡張したので、ここで少し立ち往生しています。

私はもう試した:

  • @objcメソッド宣言の前に追加します。
  • public拡張機能とメソッドに追加します。
  • 私はクラス クラスタを拡張していないので、この質問ではない可能性があります。
  • 私はプロトコルを拡張していないので、おそらくこの質問ではありません。
4

1 に答える 1