我有一个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”?
提前感谢您的帮助,真的很感激!
答案 0 :(得分:2)
NSInteger
和long
仅为32位,因此1399064580000
不适合long
变量。 (http://en.wikipedia.org/wiki/C_data_types)
尝试使用long long
作为数据类型并使用longLongValue
将其从字典中删除。