iOS NSDictionary:一个键的长值

时间:2014-06-12 14:56:23

标签: ios nsdictionary

我有一个NSDictionary(让我们称之为NSDictionary x),它的一个键有一个长对象:

  

@“pubDate”:(长)1399064580000


但使用时:

  

NSInteger a = [[x objectForKey:@“pubDate”] longValue];

而不是获得正确的值((长)1399064580000)我得到-1094758496(所以a = = -1094758496而不是1399064580000)。

我也尝试了以下相同的结果:

  

NSInteger a = [[x objectForKey:@“pubDate”] intValue];   
  NSInteger a = [[x objectForKey:@“pubDate”] integerValue];   
  NSInteger a = [x valueForKey:@“pubDate”]; =>这个给出了另一个数字,它既不是正确的值。

有人知道发生了什么事吗?为什么我没有将正确的长值变为“a”?

提前感谢您的帮助,真的很感激!

1 个答案:

答案 0 :(得分:2)

32位系统上的

NSIntegerlong仅为32位,因此1399064580000不适合long变量。 (http://en.wikipedia.org/wiki/C_data_types

尝试使用long long作为数据类型并使用longLongValue将其从字典中删除。