欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

归档解档,数据异常

更新时间: 2014-01-05 02:36:39 责任编辑: Author_N1

 

归档解档,数据错误
为什么我这样做解档出来的路宽是1啊,而我的数据里明明是350啊~~~~跪求大神看看啊
-(void)encodeWithCoder:(NSCoder *)encoder
{
    [super encodeWithCoder:encoder];
    [encoder encodeObject:[NSValue valueWithCGPoint:self.startPoint] forKey:@"startPoint"];
    [encoder encodeObject:[NSValue valueWithCGPoint: self.imageTranslate] forKey:@"endPoint"];
    [encoder encodeObject:[NSNumber numberWithBool:self.roadWidth] forKey:@"roadWidth"];
    [encoder encodeObject:[NSNumber numberWithBool:self.roadIslandWidth] forKey:@"roadIslandWidth"];
    [encoder encodeObject:[NSNumber numberWithBool:self.upOrLeftLaneNum] forKey:@"upOrLeftLaneNum"];
    [encoder encodeObject:[NSNumber numberWithBool:self.downOrRightLaneNum] forKey:@"downOrRightLaneNum"];

    
}
- (id)initWithCoder:(NSCoder *)decoder
{
    if (self = [super init])
    {   self.startPoint=((NSValue *)[decoder decodeObjectForKey:@"startPoint"]).CGPointValue;
        self.endPoint=((NSValue *)[decoder decodeObjectForKey:@"endPoint"]).CGPointValue;
        self.roadWidth=((NSNumber *)[decoder decodeObjectForKey:@"roadWidth"]).integerValue;
        self.roadIslandWidth=((NSNumber *)[decoder decodeObjectForKey:@"roadIslandWidth"]).integerValue;
        self.upOrLeftLaneNum=((NSNumber *)[decoder decodeObjectForKey:@"upOrLeftLaneNum"]).integerValue;
        self.downOrRightLaneNum=((NSNumber *)[decoder decodeObjectForKey:@"downOrRightLaneNum"]).integerValue;
     
    }


 NSMutableData *data = [NSMutableData data ];
    //创建一个归档类
    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data];
    [archiver encodeObject:[subviews objectAtIndex:i] forKey:@"RoadSectionView"];
        [archiver finishEncoding];
        [data writeToFile:[self getFilePath] atomically:YES];
    //将数据写入文件里
    /* NSData *data = [NSKeyedArchiver archivedDataWithRootObject:self.view];
     NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:(NSMutableData *)data];
     [archiver encodeObject:self.view forKey:@"RoadSectionView"];
     [archiver finishEncoding];*/
    
    NSMutableData *data1 = [NSMutableData dataWithContentsOfFile:[self getFilePath]];
    NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc]initForReadingWithData:data1];
    RoadSectionView *p3  = [unarchiver decodeObjectForKey:@"RoadSectionView"];
    NSLog(@"%d",p3.roadWidth);

--参考方法--
[encoder encodeObject:[NSNumber numberWithBool:self.roadWidth] forKey:@"roadWidth"];

你在归档的时候把这个路宽属性归档成布尔类型了,所以自然就只能是0或者1了。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:36:39
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/12060/
本文WWW.DOC100.NET DOC100.NET版权所有。