微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sReto iOS Swift 5.0

如何解决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库的快捷5链接吗?

我应该放弃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 举报,一经查实,本站将立刻删除。