ios – 核心数据,NSNumber,整数32和整数64

ios – 核心数据,NSNumber,整数32和整数64,第1张

概述在Core Data中,我有许多属性声明为Integer 64,然后通过NSNumber属性访问(默认情况下这是). 如果我通过以下方式存储和访问这些值,这是否重要: NSNumber *mySetValue = [NSNumber numberWithInt:someIntValue];[myObject setMyNumberProperty:mySetValue];int myRetr 在Core Data中,我有许多属性声明为Integer 64,然后通过NSNumber属性访问(默认情况下这是).

如果我通过以下方式存储和访问这些值,这是否重要:

NSNumber *mySetValue = [NSNumber numberWithInt:someIntValue];[myObject setMyNumberProperty:mySetValue];int myRetrIEvedValue = [myObject.myNumberProperty intValue];

或者

NSNumber *mySetValue = [NSNumber numberWithInteger:someIntegerValue];[myObject setMyNumberProperty:mySetValue];NSInteger myRetrIEvedValue = [myObject.myNumberProperty integerValue];

有两种情况我想知道答案:1)如果所需的值用于计算(它包含将转换为货币的数量或值)和2)如果该值只是一个类型基本上只会与自身进行比较,不会用于任何计算.是否可以在一种情况下使用numberWithInt和intValue而不是另外两种情况,或者在两种情况下都必须使用numberWithInteger和integerValue?

此外,如果我之前已将所有值存储为[NSNumber numberWithInt:],这是否重要 – 我可以简单地更改现在存储/检索值的方式,或者我是否需要保持一致性以免产生问题当前用户数据

我对32位和64位iOS应用程序的工作特别感兴趣.

另外 – 如果核心数据值是整数32,整数16,整数64等,它会对你的答案产生影响吗?

解决方法 你应该尽可能使用NSInteger.原因是它将与平台无关.在32位架构上,NSInteger将是一个int,长度为64位.

因此,您可以使用之前的int方法 – 它是两者中较小的子集.

出于同样的原因,您存储在Core Data数据库中的内容也可以.将值设置为integer64的事实可确保将来也可以正确存储长数字.

作为货币的用途也可以,但有一些警告.如果你主要对美分感兴趣,而不是美分,你显然可以将美分跟踪为整数.但是,如果您想进行更复杂的计算,可能涉及一小部分美分,例如某些会计方法或货币转换,并存储这些结果,您需要像浮点数或(更好)双重的东西.

总结

以上是内存溢出为你收集整理的ios – 核心数据,NSNumber,整数32和整数64全部内容,希望文章能够帮你解决ios – 核心数据,NSNumber,整数32和整数64所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1076659.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存