Как сериализовать UIView?
Можно ли сериализовать UIView
объект? Если да, как я могу это сделать?
1 ответ
UIView
реализует NSCoding
протокол, так что вы можете использовать encodeWithCoder:
чтобы получить сериализованное представление, и initWithCoder:
восстановить UIView
из такого представления. Вы можете найти много деталей в Руководстве по программированию Сериализации для Какао.
Вот быстрый пример того, как это сделать:
- (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;
}