gpt4 book ai didi

ios - 未采用扩展的 Swift 段错误

转载 作者:搜寻专家 更新时间:2023-11-01 05:44:13 24 4
gpt4 key购买 nike

如果我有一个协议(protocol),MyProtocol 定义为:

protocol MyProtocol {
func myFunction() -> String
}

并且我在扩展中声明了一个默认实现,以便符合者可以“选择性地”实现该功能:

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

一切都应该正常工作。

但是,当一个类符合该协议(protocol)但未实现这些功能时,编译器将失败并返回 Segmentation fault 11。一旦类实现了函数,错误就消失了,一切都很好,但它似乎违背了在扩展中定义默认实现的目的。

有人知道为什么会这样吗?是不是因为符合类声明它实现了方法,所以编译器忽略了扩展中写的东西,找不到方法然后崩溃了?

最佳答案

我在 protocol extensionsSegmentation fault 11 方面也遇到了类似的问题。在我的例子中,问题是,在 extension 中,我将 mutating 关键字放在函数之前,但在 protocol 中,没有 变异。相反,如果出现错误,则会导致 Segmentation fault 11

也许这有点帮助。

关于ios - 未采用扩展的 Swift 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33845930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com