如何解决sReto iOS Swift 5.0
大家好,我想从这里的GitHub库中寻求一些更新代码的帮助:
https://github.com/ls1intum/sReto
似乎该库已更新到Swift 4,但是我的项目当前正在运行Swift 5
崩溃在这里发生在cocoapod install生成的文件上:
public struct UUID: Comparable,Hashable,customstringconvertible {
/** Stores the UUID as a 16 byte array */
let uuid: [UInt8]
public var hashValue: Int { // CAUTION HERE
return uuid.map { $0.hashValue }.enumerated().reduce(0,{
let (index,hash) = $1
return $0 ^ (hash << index * 2) // CRASH HERE
}
)
}
}
对“ hashValue”的警告:不建议将“ Hashable.hashValue”作为协议要求;通过实现'hash(into :)'来使类型'UUID'与'Hashable'相符
“返回行”上的终止异常:线程1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)
我应该放弃Reto库并学习自己使用Bonjour吗?
或者有人可以解释这里发生了什么以及我如何实现'hash(into:)'?
在崩溃时打印到控制台的唯一内容是绿色的'(lldb)'
感谢您的帮助和建议
解决方法
不确定您是否找到了答案,但是我遇到了同样的问题,然后用谷歌搜索了一下。事实证明现在已弃用并自动执行可哈希计算,因此删除了整个
public var hashValue: Int { // CAUTION HERE
return uuid.map { $0.hashValue }.enumerated().reduce(0,{
let (index,hash) = $1
return $0 ^ (hash << index * 2) // CRASH HERE
}
)
}
解决了该问题,并导致了正常工作的代码!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。