这个虫子我会变得疯狂!我有这段代码在iOS 4.3上运行良好
newRegistered.ticket_id = [NSNumber numberWithInt:
[curRegistered objectForKey:@"ticket_id"] intValue]];
Run Code Online (Sandbox Code Playgroud)
如果我做 :
NSLog(@"ID before : %d, ID after : %d",
[curRegistered objectForKey:@"ticket_id"] intValue], [newRegistered.ticket_id intValue]);
Run Code Online (Sandbox Code Playgroud)
我在iOS 4.3上:
ID之前:35459,ID之后:35459
在iOS 5.0上:
ID之前:35459,ID之后:-30077
请帮忙 !谢谢你提前.
##编辑:## 我已经调查了一下这个问题.似乎问题来自于在CoreData中分配NSNumber.我应该指定上面的代码段与CoreData一起使用(newRegistered是一个NSManagedObject,而curRegistered是一个包含JSON数据的NSDictionary(只有字符串,永远不是int或long ...)).
这是具体问题:
long long test = 789654;
Registereds *a = [NSEntityDescription insertNewObjectForEntityForName:@"Registereds" inManagedObjectContext:self.managedObjectContext];
a.ticket_id = [NSNumber numberWithLongLong:test];
NSLog(@"%lld -> %@", test, a.ticket_id); // Displays 789654 -> 3222 on iOS 5 and 789654 -> 789654 on iOS 4.3
NSNumber *ticket_id = [NSNumber numberWithLongLong:test];
NSLog(@"%lld -> %@", test, …Run Code Online (Sandbox Code Playgroud)