Objective c cast消息参数目标c

Objective c cast消息参数目标c,objective-c,Objective C,我有一个NSMutableDictionary(p)——通过一个JSON字符串——其中包含一系列日期(从纪元开始的几秒钟)。我想把它们转换成NSDate。我尝试了以下方法: NSDate *created_dt = [NSDate dateWithTimeIntervalSince1970:[p objectForKey:@"created_dt"]]; 但我得到“将'id'发送到不兼容类型'NSTimeInveral'(也称为'double')的参数” 我缺少的语法是什么 谢谢 datewi

我有一个NSMutableDictionary(p)——通过一个JSON字符串——其中包含一系列日期(从纪元开始的几秒钟)。我想把它们转换成NSDate。我尝试了以下方法:

NSDate *created_dt = [NSDate dateWithTimeIntervalSince1970:[p objectForKey:@"created_dt"]];
但我得到“将'id'发送到不兼容类型'NSTimeInveral'(也称为'double')的参数”

我缺少的语法是什么


谢谢

datewithtimeintervals自1970年起:
要求
NSTimeInterval
(将
typedef
转换为
double
)。向其传递一个对象(返回值为
objectForKey
)。此对象可能是一个NSNumber,因此您可以像这样简单地解决您的问题:

NSDate *created_dt = [NSDate dateWithTimeIntervalSince1970:[[p objectForKey:@"created_dt"] doubleValue]];

实际上,因为
-(id)objectForKey:(id)aKey
返回
id
:)
id
表示指向任何对象的指针。您必须假设在这种情况下返回的对象是
NSNumber
。为了安全起见,您也可以使用内省来验证这一点。