在Core Data中存储负整数

时间:2010-12-21 01:02:29

标签: objective-c core-data nsmanagedobject

我可以正确地为托管对象模型实例的属性分配和检索正整数。但是,为此属性分配负整数会将数字“4294967295”记录到我的核心数据持久性存储(xml文件)。因此,当应用程序重新加载并重新实例化托管对象时,该属性显示为“4294967295”。

此属性在我的DataModel中指定为Integer 32类型,其“Min Value”为“-12”。我猜这与将负整数存储为字符串有关。此代码生成相同的“4294967295”:

NSLog(@"Log -1: %u", -1);
=> "Log -1: 4294967295"

在Core Data中存储负整数的正确方法是什么?

1 个答案:

答案 0 :(得分:5)

这不是Core Data的问题,它是您的格式说明符的问题。 %u表示您希望将参数格式化为无符号整数,但不能为负数。请改用%d%i(这些是指有符号整数)。