我使用以下代码将NSArray EKEvent转换为NSData,转换后的NSData是unarchiveObjectWithData到NSArray。在转换过程中,对象将被更改,并保存null值。
为什么它会显示NULL.(参见输出)。谁知道解决办法让我知道。提前谢谢。
我写的代码,
NSArray *events = [[self.eventStore eventsMatchingPredicate:predicate]retain];
NSData *arrayData = [NSKeyedArchiver archivedDataWithRootObject:events];
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:arrayData];输出是
事件:( "EKEvent <0x4ad840> {EKEvent <0x4ad840> {title = Checking with Calendar;日历= EKCalendar <0x4bf2f0> {title = Calendar;type = Local;account = (null);allowsModify = YES;color = 0.443137 0.101961 0.462745 1.000000};警报= (\n ] <0x4be630> {triggerInterval = -300.000000}\"\n);URL = (null);lastModified =2012-05-1412:15:32+0000;位置= (null);startDate = 2012-05-11 01:30:00 +0000;endDate = 2012-05-19 17:30:00 +0000;allDay = 0;浮动= 0;递归= (null);与会者=(Null)})数组:( "EKEvent <0x4c1e60> {EKEvent <0x4c1e60> {title = (null);日历= (null);警报= (null);URL = (null);lastModified = (null)};位置= (null);startDate = (null);endDate = (null);allDay = 0;浮点数= 1;递归=(空);与会者=(空)}“)
发布于 2012-06-13 04:56:18
最后,通过创建自定义的EKEvent类并获取每个值,如title、startdate、enddate到NSCoding来解决问题。那它就能正常工作。
发布于 2012-05-15 12:42:05
虽然NSArray确认了NSCoding协议,但EKEvent没有。您没有看到运行代码的异常,这有点令人惊讶,类必须向NSCoding确认归档才能工作。
https://stackoverflow.com/questions/10595567
复制相似问题