首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XCSourceEditorCommandInvocation快速扩展会导致“未识别的选择器发送到实例”异常。

XCSourceEditorCommandInvocation快速扩展会导致“未识别的选择器发送到实例”异常。
EN

Stack Overflow用户
提问于 2016-12-22 17:25:52
回答 1查看 149关注 0票数 1

当我尝试在XcodeKit (用于添加Xcode扩展的框架)中的类中添加快速扩展时,编译器很乐意构建而不会出现任何错误,但是当代码运行时,我会得到以下异常:

代码语言:javascript
复制
-[XCSourceEditorCommandInvocation test]: unrecognized selector sent to instance 0x7fc60543f2b0

下面是可以再现异常的示例代码:

代码语言:javascript
复制
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添加到扩展和方法中。
  • 我不扩展类集群,所以它很可能不是this question
  • 我不是在扩展协议,所以它很可能不是this question
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-03 20:35:30

此时XcodeKit.framework中的类或类型既不支持Objective类别,也不支持Swift扩展。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41288706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档