ios 数据归档问题

沈小夕 2013-10-31 07:06:53
请教一个问题:
我们把数据归档的时候,CGPoint类可以直接归档吗?还有那些自定义的绘图类含有image也可以归档吗,怎么归档存储。
...全文
337 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dabo_iOS 2016-05-19
  • 打赏
  • 举报
回复
point有专门的方法 encodeCGPoint
Dabo_iOS 2016-05-19
  • 打赏
  • 举报
回复
point和image可以直接归档
Dabo_iOS 2016-05-19
  • 打赏
  • 举报
回复
看不下去了 瞎说
小杨在玩iOS 2013-11-02
  • 打赏
  • 举报
回复
引用 11 楼 jingtingmeihao 的回复:
[quote=引用 6 楼 u012668981 的回复:]
小杨哥~~~~~~回复我回复我~~~~~~~[/quote] - - 347702498 有什么问题就留言吧,我上班的时候不上q的。。一般晚上有空
RannieR 2013-11-01
  • 打赏
  • 举报
回复
引用 2 楼 jingtingmeihao 的回复:
[quote=引用 1 楼 ran0809 的回复:] 对象才可以归档 你可以找找NSObject+Autocoding 这个类可以给所有类型归档
有没有相关的文章或者代码参照下啊?[/quote] 你把CGPoint包到NSValue里就可以了
沈小夕 2013-11-01
  • 打赏
  • 举报
回复
引用 6 楼 u012668981 的回复:
小杨哥~~~~~~回复我回复我~~~~~~~
沈小夕 2013-11-01
  • 打赏
  • 举报
回复
引用 3 楼 yang8456211 的回复:
小杨~~~~~~~~哭~~~~~~~~~
沈小夕 2013-11-01
  • 打赏
  • 举报
回复
引用 3 楼 yang8456211 的回复:
小杨哥,问你个问题啊~~~~~~~~~~可不可以告诉我你的QQ?我问你一个很白痴的问题,我不会~~~~~~~~最近在做项目,哭死~~~~~~~~好多不会啊
小杨在玩iOS 2013-11-01
  • 打赏
  • 举报
回复
引用 8 楼 jingtingmeihao 的回复:
[quote=引用 7 楼 yang8456211 的回复:] 你是问CGPoint与UIImage的归档吧,刚才写了个demo都可以啊。 1)自定义的类里面继承NSCoding 与NSCopying,你的point就定义成NSValue。 @property (copy,nonatomic) UIImage *image; @property (copy,nonatomic) NSValue *point; 2)归档的时候就用encodeObject [encoder encodeObject:image forKey:@”ImageKey”]; [encoder encodeObject:point forKey:@”PointKey”]; 3)存的时候 CGPoint point = CGPointMake(1.1, 2.2); NSValue *value = [NSValue valueWithCGPoint:point]; //存储数据到类 Archive *archivingData = [[Archive alloc] init]; archivingData.image = [UIImage imageNamed:@"pic.jpg"]; archivingData.point = value; NSMutableData *data = [[NSMutableData alloc] init]; NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; [archiver encodeObject:archivingData forKey: @"ArchivingData"]; [archiver finishEncoding]; //写入文件 [data writeToFile:self.archivingFileRootPath atomically:YES];// archivingFileRootPath就是存的路径 4)取得时候 NSData *data = [[NSMutableData alloc] initWithContentsOfFile:self. archivingFileRootPath]; NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; //获得类 Archive *archivingData = [unarchiver decodeObjectForKey: @"ArchivingData"]; [unarchiver finishDecoding]; self.imageView.image = archivingData.image; NSValue *value = archivingData.point; CGPoint point = [value CGPointValue]; NSLog(@"%f||%f",point.x,point.y); 当然如果你是做游戏的话,建议你把那些CGPoint都放到NSArray里面吧(转化为NSValue)
谢谢小杨[/quote]好说~
沈小夕 2013-11-01
  • 打赏
  • 举报
回复
引用 7 楼 yang8456211 的回复:
你是问CGPoint与UIImage的归档吧,刚才写了个demo都可以啊。 1)自定义的类里面继承NSCoding 与NSCopying,你的point就定义成NSValue。 @property (copy,nonatomic) UIImage *image; @property (copy,nonatomic) NSValue *point; 2)归档的时候就用encodeObject [encoder encodeObject:image forKey:@”ImageKey”]; [encoder encodeObject:point forKey:@”PointKey”]; 3)存的时候 CGPoint point = CGPointMake(1.1, 2.2); NSValue *value = [NSValue valueWithCGPoint:point]; //存储数据到类 Archive *archivingData = [[Archive alloc] init]; archivingData.image = [UIImage imageNamed:@"pic.jpg"]; archivingData.point = value; NSMutableData *data = [[NSMutableData alloc] init]; NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; [archiver encodeObject:archivingData forKey: @"ArchivingData"]; [archiver finishEncoding]; //写入文件 [data writeToFile:self.archivingFileRootPath atomically:YES];// archivingFileRootPath就是存的路径 4)取得时候 NSData *data = [[NSMutableData alloc] initWithContentsOfFile:self. archivingFileRootPath]; NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; //获得类 Archive *archivingData = [unarchiver decodeObjectForKey: @"ArchivingData"]; [unarchiver finishDecoding]; self.imageView.image = archivingData.image; NSValue *value = archivingData.point; CGPoint point = [value CGPointValue]; NSLog(@"%f||%f",point.x,point.y); 当然如果你是做游戏的话,建议你把那些CGPoint都放到NSArray里面吧(转化为NSValue)
谢谢小杨
小杨在玩iOS 2013-11-01
  • 打赏
  • 举报
回复
你是问CGPoint与UIImage的归档吧,刚才写了个demo都可以啊。 1)自定义的类里面继承NSCoding 与NSCopying,你的point就定义成NSValue。 @property (copy,nonatomic) UIImage *image; @property (copy,nonatomic) NSValue *point; 2)归档的时候就用encodeObject [encoder encodeObject:image forKey:@”ImageKey”]; [encoder encodeObject:point forKey:@”PointKey”]; 3)存的时候 CGPoint point = CGPointMake(1.1, 2.2); NSValue *value = [NSValue valueWithCGPoint:point]; //存储数据到类 Archive *archivingData = [[Archive alloc] init]; archivingData.image = [UIImage imageNamed:@"pic.jpg"]; archivingData.point = value; NSMutableData *data = [[NSMutableData alloc] init]; NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; [archiver encodeObject:archivingData forKey: @"ArchivingData"]; [archiver finishEncoding]; //写入文件 [data writeToFile:self.archivingFileRootPath atomically:YES];// archivingFileRootPath就是存的路径 4)取得时候 NSData *data = [[NSMutableData alloc] initWithContentsOfFile:self. archivingFileRootPath]; NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; //获得类 Archive *archivingData = [unarchiver decodeObjectForKey: @"ArchivingData"]; [unarchiver finishDecoding]; self.imageView.image = archivingData.image; NSValue *value = archivingData.point; CGPoint point = [value CGPointValue]; NSLog(@"%f||%f",point.x,point.y); 当然如果你是做游戏的话,建议你把那些CGPoint都放到NSArray里面吧(转化为NSValue)
sun111111111111 2013-11-01
  • 打赏
  • 举报
回复
小杨在玩iOS 2013-10-31
  • 打赏
  • 举报
回复
沈小夕 2013-10-31
  • 打赏
  • 举报
回复
引用 1 楼 ran0809 的回复:
对象才可以归档 你可以找找NSObject+Autocoding 这个类可以给所有类型归档
有没有相关的文章或者代码参照下啊?
RannieR 2013-10-31
  • 打赏
  • 举报
回复
对象才可以归档 你可以找找NSObject+Autocoding 这个类可以给所有类型归档

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧