0

如何将 CFGregorianDate (currentSelectDate) 放入 NSDictionary?

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

将“CFGregorianDate”发送到不兼容类型“id”的参数

我的代码:

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

2 回答 2

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)];

在您的努力中向您致以最良好的祝愿。

于 2012-06-26T18:04:14.173 回答
1

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

于 2012-06-26T18:24:04.207 回答