Core data NSNumber在将其添加到NSManagedObject时更改值

Core data NSNumber在将其添加到NSManagedObject时更改值,core-data,nsnumber,Core Data,Nsnumber,因此:只要我将NSNumber放入NSManagedObject,无论是通过setValuesForKeysWithDictionary,还是通过专门使用setValue设置值:forKey:NSNumber从2013037更改为-18579 看起来,chicnumber在核心数据模型中被配置为“整数16”。但是您正在分配一个值2013037,它需要超过16位。执行此操作时,该值将被损坏,并以不正确的值结束 在数据模型中使用较大的整数类型。此示例值将适合32位整数。是否需要64位取决于为chic

因此:只要我将NSNumber放入NSManagedObject,无论是通过setValuesForKeysWithDictionary,还是通过专门使用setValue设置值:forKey:NSNumber从2013037更改为-18579

看起来,
chicnumber
在核心数据模型中被配置为“整数16”。但是您正在分配一个值
2013037
,它需要超过16位。执行此操作时,该值将被损坏,并以不正确的值结束


在数据模型中使用较大的整数类型。此示例值将适合32位整数。是否需要64位取决于为
chicnumber

创建的
ordersRecord
的位置可能会获得哪些其他值?NSManagedObject*ordersRecord=[NSEntityDescription insertNewObjectForEntityForName:@“OrderDetails”在ManagedObject上下文中:moc];是引用代码正上方的行。我正在从web界面用JSON填充数据库。Android喜欢_id,但iOS没有,所以我必须用iOS友好的内容替换JSON结果中的_id字段。我还尝试手动替换NSNumber chicnumber字段,看看这是否可以解决问题,但没有。为了清楚起见,我留下了代码。谢谢汤姆。我检查了我的数据模型,其中两个模型使用的是整数32,2使用的是整数16。
NSDictionary* ordersTableRow = arrayOfDictionaries[i];
NSMutableDictionary* ordersTemp = [[NSMutableDictionary alloc] initWithDictionary:ordersTableRow];
[ordersTemp removeObjectForKey:@"_id"];
NSNumber *myCHICNumber = [ordersTableRow objectForKey:@"chicnumber"];
NSLog(@"myCHICNumber = %@", myCHICNumber);
[ordersTemp removeObjectForKey:@"chicnumber"];
[ordersTemp setObject:myCHICNumber forKey:@"chicnumber"];
[ordersTemp setObject:[ordersTableRow objectForKey:@"_id"] forKey:@"rowindex"];
NSLog(@"chicnumber for OrderDetails = %@", [ordersTableRow objectForKey:@"chicnumber"]);
[ordersRecord setValuesForKeysWithDictionary:ordersTemp];
NSLog(@"chicnumber for OrderDetails = %@", [ordersTableRow objectForKey:@"chicnumber"]);
NSLog(@"chicnumber for OrdersRecord = %@", [ordersRecord valueForKey:@"chicnumber"]);
[ordersRecord setValue:myCHICNumber forKey:@"chicnumber"];
NSLog(@"chicnumber for OrdersRecord = %@", [ordersRecord valueForKey:@"chicnumber"]);

Yields : 
2014-03-27 09:20:57.227 [2269:3107] myCHICNumber = 2013037
2014-03-27 09:20:57.227 [2269:3107] chicnumber for OrderDetails = 2013037
2014-03-27 09:21:08.243 [2269:3107] chicnumber for OrderDetails = 2013037
2014-03-27 09:21:13.283 [2269:3107] chicnumber for OrdersRecord = -18579
2014-03-27 09:21:47.459 [2269:3107] chicnumber for OrdersRecord = -18579

NSManagedObject defined : 
@property (nonatomic, retain) NSNumber * orderid;
@property (nonatomic, retain) NSString * productid;
@property (nonatomic, retain) NSNumber * quantity;
@property (nonatomic, retain) NSString * colourcode;
@property (nonatomic, retain) NSString * notes;
@property (nonatomic, retain) NSNumber * chicnumber;
@property (nonatomic, retain) NSString * colourname;
@property (nonatomic, retain) NSNumber * rowindex;