如何将CFGregorianDate(currentSelectDate)添加到NSDictionary中?
我使用以下代码收到此错误:
将'CFGregorianDate'发送到不兼容类型'id'
的参数
我的代码:
NSDictionary *userInfo = [NSDictionary dictionaryWithObject: currentSelectDate forKey:@"currentSelectDate"];
答案 0 :(得分:3)
CFGregorianDate基本上是一个C结构。首先创建一个NSData实例来保存其字节:
NSData *data = [NSData dataWithBytes:¤tSelectDate length:sizeof(CFGregorianDate)];
然后将其放在词典中:
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:data forKey:@"currentSelectDate"];
要检索它,我们假设您已经分配了CFGregorianDate(在这种情况下,在堆栈上),再次称为currentSelectDate
:
NSData *data = [userInfo objectForKey:@"currentSelectDate"];
[data getBytes:¤tSelectDate length:sizeof(CFGregorianDate)];
祝你工作顺利。
答案 1 :(得分:1)
这不是一个很好的解决方案,但是如果你只是需要一个快速修复,为什么不把gregorian放入一个字符串然后把它放到字典中呢?您甚至可以从每条数据中创建一个单独的字符串,并将它们存储在字典的不同索引中。