Lou*_*arg 12
UIView实现NSCoding协议,因此您可以使用encodeWithCoder:获取序列化表示,并从这样的表示initWithCoder:重构UIView.您可以在Cocoa序列化编程指南中找到很多细节.
以下是如何执行此操作的快速示例:
- (NSData *)dataForView:(UIView *)view {
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:view forKey:@"view"];
[archiver finishEncoding];
[archiver release];
return (id)data;
}
- (UIView *)viewForData:(NSData *)data {
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
UIView *view = [unarchiver decodeObjectForKey:@"view"];
[unarchiver finishDecoding];
[unarchiver release];
return view;
}
Run Code Online (Sandbox Code Playgroud)