整数存储值为负

Posted

技术标签:

【中文标题】整数存储值为负【英文标题】: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 整数类型是有符号的,因此允许它们具有负值。 检查一次***.com/questions/9610592/… 您确定您的应用正在使用 Integer 32 列吗?尝试删除应用、删除派生数据并运行干净的构建。 我已经尝试删除应用程序并重新安装它,但没有删除派生数据。会尝试的。有什么方法可以检查应用程序是否使用 Integer 32? 我尝试删除所有内容,但没有任何改变。 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

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

供参考:Swift - Data Types

【讨论】:

以上是关于整数存储值为负的主要内容,如果未能解决你的问题,请参考以下文章

iOS int names[] = CTL_HW, HW_PHYSMEM 返回 HW_PHYSMEM 值为负

labview如何存储变量

int类型最大值

深入理解计算机系统之信息的存储和处理

如何将具有负整数的NSString转换为负整数

Python中整数除法的余数为负