2
我正嘗試使用核心數據存儲長時間的值。值爲119143881477165.我將該值存儲在使用便捷方法numberWithUnsignedLongLong創建的NSNumber中。核心數據元數據的此字段的類型設置爲int64。數字得到正確存儲,但是當我使用unsignedLongLongValue檢索此數字時,該值被截斷。在iPhone SDK中使用CoreData存儲longLong值
有什麼建議嗎?
我正嘗試使用核心數據存儲長時間的值。值爲119143881477165.我將該值存儲在使用便捷方法numberWithUnsignedLongLong創建的NSNumber中。核心數據元數據的此字段的類型設置爲int64。數字得到正確存儲,但是當我使用unsignedLongLongValue檢索此數字時,該值被截斷。在iPhone SDK中使用CoreData存儲longLong值
有什麼建議嗎?
你說它被截斷......你存儲的值是什麼類型的基元?如果您使用的是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]原:119143881477165
2010 -10-04 00:39:25.106 EmptyFoundation [790:a0f]解壓縮:119143881477165
謝天謝地你正在使用'unsingedLongLongValue' ....燒焦的變體不是那麼愉快。 – 2010-10-04 06:36:35