当我尝试在XcodeKit
(添加Xcode扩展的框架)中为类添加swift扩展时,编译器很乐意构建而没有任何错误,但是当代码运行时,我得到以下异常:
-[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!")
}
}
我过去在swift中扩展了ObjC课程,没有任何问题,所以我有点卡在这里。
我试过了:
@objc
。 public
添加到扩展名和方法。答案 0 :(得分:2)
目前XcodeKit.framework中的类或类型都不支持Objective-C类别和Swift扩展。