gpt4 book ai didi

ios - 在主队列中设置属性时 Swift 应用程序崩溃

转载 作者:行者123 更新时间:2023-11-28 11:04:40 25 4
gpt4 key购买 nike

我正在使用属性 setter 和 didSet() 值来设置“完成百分比”属性。所有属性访问都在主队列中完成,我设置的属性没有钩子(Hook)或getters或setters,对象已完全初始化,我在计算中使用的字段都在那里。

但是,我收到了一个令人恼火的 EXC_BREAKPOINT 错误,没有其他详细信息。

我想这可能是一个多线程访问问题,但我在所有其他线程中只看到空堆栈。

错误断点:

Error Breakpoint

调试器值:

Both fields populated

调用堆栈(这些都是set或didSet):

enter image description here

最佳答案

因为将 22,667,272 乘以 99,所以出现整数溢出。使用 Int64 而不是 Int。

您可以在 32 位整数中存储的最大值是 2,147,483,647。 22,667,272 * 99 是 2,244,059,928,因此会发生整数溢出。 Int 的大小因架构而异,因此您的代码可以在 64 位设备上运行,但不能在 32 位设备上运行。如果您显式使用 Int64,您将避免溢出。

let totalBytes = Int64(self.bytesTotal)
let uploaded = Int64(self.bytesUploaded)

self.percentComplete = Int(1 + 99 * uploaded / totalBytes)

关于ios - 在主队列中设置属性时 Swift 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38677562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com