如何在NSDictionary中放入CFGregorianDate?

时间:2012-06-26 17:36:05

标签: objective-c

如何将CFGregorianDate(currentSelectDate)添加到NSDictionary中?

我使用以下代码收到此错误:

  

将'CFGregorianDate'发送到不兼容类型'id'

的参数

我的代码:

NSDictionary *userInfo = [NSDictionary dictionaryWithObject: currentSelectDate forKey:@"currentSelectDate"];

2 个答案:

答案 0 :(得分:3)

CFGregorianDate基本上是一个C结构。首先创建一个NSData实例来保存其字节:

NSData *data = [NSData dataWithBytes:&currentSelectDate length:sizeof(CFGregorianDate)];

然后将其放在词典中:

NSDictionary *userInfo = [NSDictionary dictionaryWithObject:data forKey:@"currentSelectDate"];

要检索它,我们假设您已经分配了CFGregorianDate(在这种情况下,在堆栈上),再次称为currentSelectDate

NSData *data = [userInfo objectForKey:@"currentSelectDate"];
[data getBytes:&currentSelectDate length:sizeof(CFGregorianDate)];

祝你工作顺利。

答案 1 :(得分:1)

这不是一个很好的解决方案,但是如果你只是需要一个快速修复,为什么不把gregorian放入一个字符串然后把它放到字典中呢?您甚至可以从每条数据中创建一个单独的字符串,并将它们存储在字典的不同索引中。