Я пытаюсь исправить старый учебник с сайта RayWenderlich, больше не поддерживается.Предупреждение появляется в трех файлах, Chain.swift, Cookie.swift и Swap.swift из учебника «Как сделать игру похожей на Candy Crush с помощью SpriteKit и Swift:», учебник
Я в растерянности даже после того, какизучение доступных ответов, которые появляются во многих местах.Я изо всех сил пытаюсь понять, что делает этот код, чтобы я мог это исправить.Я знаю, что это просто предупреждение, и я, вероятно, могу игнорировать его, но игра также показывает X, где должны появиться пустые плитки, так что я подозреваю, что это может быть как-то связано с этим?
Предупреждение таково:
'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Chain' to 'Hashable' by implementing 'hash(into:)' instead
Пример файла
class Chain: Hashable, CustomStringConvertible {
var cookies: [Cookie] = []
var score = 0
enum ChainType: CustomStringConvertible {
case horizontal
case vertical
var description: String {
switch self {
case .horizontal: return "Horizontal"
case .vertical: return "Vertical"
}
}
}
var chainType: ChainType
init(chainType: ChainType) {
self.chainType = chainType
}
func add(cookie: Cookie) {
cookies.append(cookie)
}
func firstCookie() -> Cookie {
return cookies[0]
}
func lastCookie() -> Cookie {
return cookies[cookies.count - 1]
}
var length: Int {
return cookies.count
}
var description: String {
return "type:\(chainType) cookies:\(cookies)"
}
var hashValue: Int {
return cookies.reduce (0) { $0.hashValue ^ $1.hashValue }
}
static func ==(lhs: Chain, rhs: Chain) -> Bool {
return lhs.cookies == rhs.cookies
}
}