不采用扩展的Swift分段错误

时间:2015-11-21 16:44:51

标签: ios swift protocols

如果我有协议,MyProtocol定义为:

protocol MyProtocol {
    func myFunction() -> String
}

我在扩展中声明了一个默认实现,这样构造者就可以选择"实现功能:

extension MyProtocol {
    func myFunction() -> String { return "" }
}

一切都应该只是花花公子。

但是,当一个类符合该协议并且没有实现这些函数时,编译器会失败并显示Segmentation fault 11。一旦类实现了该函数,错误就会消失,并且一切都很好,但它似乎无法在扩展中定义默认实现。

有谁知道为什么会这样?是因为符合类声明它实现了方法,因此编译器忽略了扩展中写的内容,无法找到方法然后崩溃?

1 个答案:

答案 0 :(得分:-1)

protocol extensionsSegmentation fault 11也遇到过类似的问题。 在我的情况下,问题是,extension我在函数之前放置了mutating关键字,但在protocol中没有mutating。而错误导致Segmentation fault 11

也许这有点帮助。