NSKeyedUnArchiver回到原来的自定义NSObject

时间:2011-06-09 09:38:28

标签: iphone objective-c cocoa-touch ios4

我有一个对象,它存储了来自twitter的所有信息,但是我需要给它一个加载状态,所以它需要保存到内存中。

这是我到目前为止所做的代码

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

    rssParser = [[RssParser alloc] loadXMLbyURL:@"http://twitter.com/statuses/user_timeline/2smssupport.xml"];

    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:rssParser];
    [prefs setObject:data forKey:@"Tweets"];
    [prefs synchronize];

    NSData *olddata = [prefs dataForKey:@"Tweets"];    

我需要将olddata恢复为原始形式,作为'RssParser'

如果有人可以提供帮助,那将是王牌!它在最后一天左右肆虐我的大脑!

1 个答案:

答案 0 :(得分:0)

RssParser是否实现了NSCoding?如果是这样,你只需要做

NSData *olddata = [prefs dataForKey:@"Tweets"];
RssParser *oldRssParser = (RssParser *)[NSKeyedUnarchiver unarchiveObjectWithData:olddata];

否则你应该阅读http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Archiving/Archiving.html%23//apple_ref/doc/uid/10000047-SW1