我应该如何对我的核心数据实体中的 NSNumber 属性执行计算/更新?

Posted

技术标签:

【中文标题】我应该如何对我的核心数据实体中的 NSNumber 属性执行计算/更新?【英文标题】:how should I perform calculations/updates to an NSNumber attribute in my Core Data entity? 【发布时间】:2011-04-15 22:05:06 【问题描述】:

所以我知道您需要 NSNumber 才能在 Core Data 中保存整数。

我的问题是在这里访问整数、执行数学运算然后更新的最佳技术是什么?

例如,您是否应该基本上总是立即将 NSNumber 转换为 NSInteger(我猜是使用 NSNumber intValue 方法),进行数学/计算,然后在最后一分钟创建一个新的 NSNumber 并保存回核心数据?

【问题讨论】:

【参考方案1】:

你是对的,格雷格。由于我们从 NSArray 或 NSMutableArray 数组中获取要绘制的值,因此我们不能在 NSArray 中存储整数,因为 int 不是对象。而 NSNumber 是一个对象。这就是为什么我们将它转​​换为 NSNumber 并在计算后存储它。

此外,正如 Eric 在他的一个答案中提到的,对于绘图数据,您可以提供任何 NSNumber 实例。 Core Plot 也支持 NSDecimalNumber 并且在绘制图形时将使用更高精度的计算,尽管这会带来性能成本。

【讨论】:

以上是关于我应该如何对我的核心数据实体中的 NSNumber 属性执行计算/更新?的主要内容,如果未能解决你的问题,请参考以下文章

使用 NSSortDescriptor 对 NSNumber 进行排序

将 NSDate 和 NSNumber 和/或保存在相同的核心数据属性中

无法将 NSNumber 存储在核心数据中

带有 NSNumber 的 NSArray 的 NSPredicate(核心数据)

我应该使用 Core Data 中的 NSNumber (Integer 16, 32, 64) 来保留 NSUInteger

我应该如何迁移我的核心数据?