我有一个NSNumbers数组我保存到核心数据实体。NSNumbers changing
我已经设置了他们的NSNumber属性我想设置为Integer64。
在一些数字我得到奇怪的结果,我想知道它是否是一个类型问题。
我有一个临时对象,我填充了在创建时被提取到Core-Data类型对象中的数据。
例如[cachableObject setValue:tempObject.number forKey:@"number"];
我放置了两条日志语句,一条在上面,另一条在这行下面。
NSLog(@"tempObject.number is %@", tempObject.number);
[cachableObject setValue:tempObject.number forKey:@"number"];
NSLog(@"cachableObject.number is %@", cachableObject.number);
此登录的两个不正确的事件(到目前为止)以下:
tempObject.number is 14047556750440521185
cachableObject.number is -4399187323269030431
tempObject.number is 12267813409388115511
cachableObject.number is -6178930664321436105
是什么原因造成这个问题?在其他数字上,数字不会改变。
有符号整数溢出 - 您的数字太大。你需要使用无符号整数。 – 2013-03-10 16:57:15
我认为是这样,但不确定在Core-Data模型中为此属性设置的类型。 – jarryd 2013-03-10 16:58:28
你需要用这些数字做数学吗?如果你有能力放弃一些速度(和空间),字符串可能不那么令人头疼。 – danh 2013-03-10 17:03:59