我正在尝试使用 Core Data 存储 long long 值。像 119143881477165 这样的值。我将该值存储在 NSNumber 中,该值是使用便捷方法 numberWithUnsignedLongLong 创建的。 Core Data 元数据将此字段的类型设置为 int64。该数字已正确存储,但是当我使用 unsignedLongLongValue 检索该数字时,该值被截断。
有什么建议吗?
最佳答案
你说它被截断了......你将值存储在什么类型的原语中?如果您使用的是 NSUInteger
,您所在的平台可能会将其定义为 unsigned int
,而不是 unsigned long
>.
如果您明确想要一个long long
,则使用long long
。
以下内容按预期工作:
unsigned long long number = 119143881477165;
NSNumber * numberValue = [NSNumber numberWithUnsignedLongLong:number];
unsigned long long extracted = [numberValue unsignedLongLongValue];
NSLog(@"original: %llu", number);
NSLog(@"extracted: %llu", extracted);
它记录:
2010-10-04 00:39:25.103 EmptyFoundation[790:a0f] original: 119143881477165
2010-10-04 00:39:25.106 EmptyFoundation[790:a0f] extracted: 119143881477165
关于iphone - 在 iPhone SDK 中使用 CoreData 存储 longLong 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3853243/