gpt4 book ai didi

ios - 如何使用 NSCoding 保存 Int64 变量

转载 作者:行者123 更新时间:2023-11-30 13:06:28 24 4
gpt4 key购买 nike

在我的 iOS 应用程序中,我有一个从 0 开始但最终可能为 3,000,000,000,000 的数字变量。

如果我将其声明为 Int,那么在 64 位设备上就可以了,因为 Int 类型将引用 Int64 类型(最大值 9,223,372,036,854,775,807)。但在 32 位设备上,Int 类型将引用 Int32 类型,其最大值为 2,147,483,647。显然,这太小了。

那么如何最好地解决这个问题并使其在 32 位设备上正常运行呢?

如果我理解正确,我可以将变量声明为 Int64,并且在 32 位和 64 位设备上都可以:

  var myNumber:Int64 = 0

但是,我使用 NSCoding 来保存数据,并且在尝试对其进行编码和解码时收到错误消息:

myNumber = aDecoder.decodeIntegerForKey("MyNumber")

错误:无法将“Int”类型的值分配给“Int64”类型

aCoder.encodeInteger(myNumber, forKey: "MyNumber")

错误:无法将“Int64”类型的值转换为预期的参数类型“Int”

那么如何将 NSCoding 与此变量一起使用?或者有没有比将其声明为 Int64 更好的方法来处理我的大数字?

最佳答案

required convenience init?(coder aDecoder: NSCoder) {
let exBytesVideo = aDecoder.decodeInt64ForKey("myInt64Number")
}

func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeInt64(self.expectedBytesVideo, forKey: "myInt64Number")
}

关于ios - 如何使用 NSCoding 保存 Int64 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39307466/

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