1
我想要做的是将EKEvent
转换为NSData
,然后将其转换回EKEvent
。如何从已存在的类创建自定义类? (现有的类不支持NSCoding)
我环顾四周,注意到要使用NSKeyedArchiver
,该类必须符合NSCoding
协议。我还发现,如果我正在创建自定义类,则可以通过在这样的自定义类上实现encodeWithCoder:
来使其符合NSCoding
协议。
从本质上讲,我认为以我的EKEvent
到NSData
和转换回,我需要创建一个自定义类(我们称之为CustomEvent
)我需要做到以下几点:
EKEvent --> CustomEvent --> NSData --> CustomEvent --> EKEvent
能我在学习如何创建一个自定义的类来重新创建一个现有类的帮助,除了我执行encodeWithCoder:
以使其符合NSCoding
?
我在看EKEvent.h,我知道它涉及其他类,我还必须复制(因为它们也不符合NSCoding
)。任何人都可以给我一个教程链接或帮助我吗?
在此先感谢!
完美!正是我在找什么。所以我创建了.m和.h,但我仍然不知道如何处理以下内容: EKEvent有几个对象,例如: NSDate * _dateStamp;因此,当我从Apple文档(关于自定义子类)定义 - (void)encodeWithCoder:(NSCoder *)编码器时,我发现我应该把: [coder encodeObject:dateStamp forKey:@“dateStamp”]; 当然,XCode抱怨“dateStamp”对象不存在(因为它没有在类别中声明)。我只是重申声明?会有一个问题吗(我假设会)? – 2010-07-13 01:08:54
该字段的名称是'_dateStamp',而不是'dateStamp',只要您导入标题,它应该是可见的。但是,我会小心不要违反未来可能会改变的实现细节。 – Chuck 2010-07-13 01:25:11