协议扩展默认变量实现会引发分段错误11

时间:2016-03-21 11:00:41

标签: swift

我想用默认的变量实现创建协议扩展。这个简单的代码抛出了分段错误11,它也在操场上崩溃了。 当"设置"它工作正常。关键字已删除,但我无法简单地将值设置为" test"实现此协议的类中的变量 有什么提示吗?

import UIKit

protocol Prot {
    var test: Int { get set }
}

extension Prot {
    var test: Int {
        return 1
    }
}

struct TestStruct: Prot {

}

1 个答案:

答案 0 :(得分:0)

如果你遇到分段错误,那肯定是一个Swift编译器错误。 即使这样有效,这段代码仍然不应该编译。

原因是您的扩展程序为get定义了默认test,但TestStruct没有set,因此它没有#39}。 ; t符合Prot。 如果该错误不存在,您将收到TestStruct doesn't conform to protocol Prot

行的错误消息

p.s:考虑向bugs.swift.org发送一个错误,因为它是一个非常小的例子,我们将不胜感激