【问题标题】:Integer store value is negative整数存储值为负
【发布时间】:2014-06-21 09:52:52
【问题描述】:

我有一个核心数据模型,其中包含一个id 字段,该字段是一个整数 16

我注意到应用程序在该字段中保存了一些具有负值的对象

例如(来自 sqlite3 命令行):

2|1|1|-32223||9|424968994|424968994|step`

我想我会改用 Integer 32 来修复它,但问题仍然存在。对象仍以该字段中的负值保存。我不太清楚为什么。

切换到 Integer 32 是否正确?这应该解决了问题吗?

编辑:我要保存的值示例

例如我存储的值是 33239 但它保存为 -32297

【问题讨论】:

  • 您将哪些值保存到该字段? Core Data 整数类型是有符号的,因此允许它们具有负值。
  • 您确定您的应用正在使用 Integer 32 列吗?尝试删除应用、删除派生数据并运行干净的构建。
  • 我已经尝试删除应用程序并重新安装它,但没有删除派生数据。会尝试的。有什么方法可以检查应用程序是否使用 Integer 32?
  • 我尝试删除所有内容,但没有任何改变。

标签: ios objective-c core-data


【解决方案1】:

由于unsigned longInteger32Integer64 兼容,您应该将这种类型的var (unsigned long) 保存在CoreData 中。

【讨论】:

    【解决方案2】:

    我有一个类似的问题。我将 33675 ​​整数值存储在 CoreData 中,但是当我检索时,我得到了类似 -26532 的值。

    在我的情况下,我将我的整数值定义为类型 int16,因此当我将变量从 int16 更改为 int64 时,int16 的范围是 -32,768 到 32,767,它解决了我的问题问题。

    供参考:Swift - Data Types

    【讨论】:

      猜你喜欢
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 2011-07-25
      • 2016-05-23
      • 2014-03-20
      • 2012-04-26
      • 2012-01-28
      • 2013-11-07
      相关资源
      最近更新 更多