Xcode不提供添加协议存根



我正试图使我的结构卡符合协议Hashable(用于字典(,但由于某种原因,Xcode没有用红色错误对我大喊大叫,比如";类型"Card"不符合协议"Hashable"。我不明白为什么。我希望Xcode添加协议存根。

import Foundation
struct Card : Hashable {

var isFaceUp = false
var isMatched = false
var identifier : Int

private static var identifierFactory = 0

private static func getUniqueIdentifier() -> Int {
Card.identifierFactory += 1
return Card.identifierFactory
}

init() {
identifier = Card.getUniqueIdentifier()
}
}

由于Hashable协议是在结构体Card上自动合成的,因此它没有显示任何错误,表明您需要添加协议存根以符合它。因此,添加Hashable协议一致性不需要任何额外的代码。

如果出于某种原因想要覆盖默认实现,可以通过执行以下操作来实现。

struct Card: Hashable {
//...
func hash(into hasher: inout Hasher) {
hasher.combine(identifier) // combine any hashable you like
}
}

最新更新