从字典中删除NSNumber会为长值返回0

时间:2013-12-22 07:41:49

标签: objective-c nsdictionary nsnumber

问题:我正在尝试从字典中检索NSNumber,但检索时存储在字典中的long值会被清除为0。

下面的代码将 NSNumber 变量time_of_update传递到字典中。 time_of_update具有来自时间戳的长值,并且永远不为零。当尝试从字典中读取time_of_update作为NSNumber而不是将其转换为long时出现问题。结果始终为零,而不是最初设置的时间戳值。

NSMutableDictionary *_update = [NSMutableDictionary dictionaryWithObjectsAndKeys:time_of_update,@"time",nil];
NSLog(@"Output: %ld",[[_update objectForKey:@"time"] longValue]);

1 个答案:

答案 0 :(得分:2)

我打赌你的词典中较早的其他内容是零。当发生这种情况时,随后的所有内容最终都会被忽略。所以在你的下一行中,[_ updatedateForKey:@“time”]可能是nil,它将long变为0。

当您使用NSLog()[_更新objectForKey:@“time”]时,它是否为零?