在Core Data中存储负整数

tas*_*ock 2 core-data objective-c nsmanagedobject

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

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

NSLog(@"Log -1: %u", -1);
=> "Log -1: 4294967295"
Run Code Online (Sandbox Code Playgroud)

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

Jas*_*oco 5

这不是Core Data的问题,它是您的格式说明符的问题.%u意味着您希望将参数格式化为无符号整数,但不能为负数.使用%d%i代替(这些意味着有符号整数).