我正在编写一个应用程序,它可以通过苹果的核心数据保存数据。在我的代码中,所有整数都被声明为"Int",因为这更灵活,编译器将这些Int适应于运行代码的设备。
但是,当我想使用核心数据保存这些“Int”时,我必须选择32位整数或64位整数。如果可能的话,我希望我的应用程序与iPhone5-6s兼容,因此我不愿选择32位(因为性能更好,我读到苹果在6s中移动到32位)。
有什么办法可以使代码的这一部分保持灵活性吗?如果我选择32位,如果代码在64位设备上运行,会发生什么?
提前谢谢。
发布于 2016-05-05 04:21:27
默认Int:
但是,Int32和Int64都将在32位设备上工作。(但Int64需要更长的时间来计算32位设备)
如果您的数字小于或等于±2.147.483.647,我建议您使用Int32。
公式:(2^(位- 1) - 1)或更小或等于±32.767的Int16
(实际上负值可以大于正值: Int32 -2.147.483.648 .2.147.483.647的范围)
如果在Int32中使用coreData,只需确保不超过此数字,并将Int 转换为?当存钱时,Int32?因为理论上它可以是一个更高的数字)
当将Int32加载到Int时总是成功的(使用:as!( Int)
如果您在Int64中使用coreData,只需将Int 转换为!当保存时,Int64 (即使在32位设备上也会成功,但可能是稍微慢一点的,但是如果不经常保存/加载它,就不会有任何问题)。
但是在加载时要小心,将表单Int64转换为Int可能会失败,因为理论上Int64可以存储更多的数据,而32位设备上的Int可以存储更多的数据(使用作为?( Int以防止可能的崩溃)
https://stackoverflow.com/questions/37050041
复制