我可以正确地为托管对象模型实例的属性分配和检索正整数。但是,为此属性分配负整数会将数字“4294967295”记录到我的核心数据持久性存储(xml文件)。因此,当应用程序重新加载并重新实例化托管对象时,该属性显示为“4294967295”。
此属性在我的DataModel中指定为Integer 32类型,其“Min Value”为“-12”。我猜这与将负整数存储为字符串有关。此代码生成相同的“4294967295”:
NSLog(@"Log -1: %u", -1);
=> "Log -1: 4294967295"
在Core Data中存储负整数的正确方法是什么?
答案 0 :(得分:5)
这不是Core Data的问题,它是您的格式说明符的问题。 %u
表示您希望将参数格式化为无符号整数,但不能为负数。请改用%d
或%i
(这些是指有符号整数)。