【问题标题】:XCode 7.2 crashes when protocol extension implements function incorrectlyXCode 7.2 在协议扩展实现功能不正确时崩溃
【发布时间】:2016-02-16 08:20:01
【问题描述】:

不确定是否有其他人遇到过这种情况,但以下代码会导致 XCode 立即出错,并显示“SourceKitService 意外退出”,有时会导致 XCode 完全崩溃。

当我在扩展中更改协议函数的默认实现时,我在项目中遇到了这种情况,但忘记更改协议中的声明以匹配。

protocol Crash{
        func crash(age: Int) ->String
    }

extension Crash{
    func crash(name: String) -> String{
        return "Test"
    }
}

class TestCrash: Crash{

}

【问题讨论】:

  • 我有同样的经历,我没有答案......但最好的解决方法是如果在扩展中定义,则不要在协议中声明函数,因为这样的声明是多余的。这似乎是一个错误,编译器应该抱怨,TestCrash 不符合协议 Crash,因为 func crash(age: Int) ->String 没有实现。
  • 感谢您的信息,没有意识到协议中的声明是多余的。

标签: crash swift2 protocols xcode7.2 sourcekitservice


【解决方案1】:

这个错误似乎已在 Xcode 7.3 beta 中修复。

Xcode 7.3b 只是在消息中声明错误并且不再崩溃。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    相关资源
    最近更新 更多