我正在查询一个NSDictionary的值。因为我遇到了问题,所以我打印了对象。它让我看到以下内容:如何提取64位有符号整数值
<CFString 0x5d33630 [0x26af380]>{contents = "myDictionaryItem"} = <CFNumber 0x5d58940 [0x26af380]>{value = +1286301600, type = kCFNumberSInt64Type}
所以它的类型为符号的64位整数。所以我试图提取这样的值
NSString *myString = [NSString stringWithFormat:@"%qi", [myDictionary objectForKey:@"myDictionaryItem"]];
这给了我一个值,但该值不是字典中的值。
我也试过这个
long long my64bitsignedIntegerValue = (long long)[myDictionary objectForKey:@"myDictionaryItem"];
,但我得到警告Cast from pointer to integer of different size
。这不起作用,因为stringWithFormat
正在返回类型为id
的值。我发现这post其中id
是UInt32
类型。一个有符号的64位整数不是无符号的32位整数,所以我得到这个警告。如果我忽略这个警告,这个值仍然是错误的。
我想要的价值是1286301600.一个有符号整数(-2.147.483.648到2.147.483.647)应该做我想要的东西。我不明白为什么Cocoa试图做一个64位有符号整数。
如何提取字典的64位有符号整数并将其用作变量?
作品像一个风情万种:)谢谢 – testing 2010-09-15 08:58:37