无法使用nskeyedArchiver保存多个对象

时间:2013-03-12 08:32:35

标签: objective-c

我正在尝试使用NsKeyedArchiever来保存包含型号,品牌,年份,颜色,vin的Car Car详细信息。 代码如下:

void CarData()
{
    Car *myCar = [[Car alloc] init];
    myCar.model = [carTempArray objectAtIndex:0];//Temporary array contains value
    myCar.make = [carTempArray objectAtIndex:1];
    myCar.color = [carTempArray objectAtIndex:2];
    myCar.year = [carTempArray objectAtIndex:3];
    myCar.vin = [NSNumber numberWithInt:check];
    NSString *docspath = [NSHomeDirectory() stringByAppendingPathComponent:@"documents"];
    BOOL saved =[NSKeyedArchiver archiveRootObject: myCar toFile:docspath];
    NSLog(@"did save state %d",saved);
    [myCar release];
    [NSKeyedArchiver release];
}

之后使用NSkeyedUnarcheiver如下:

void ShowData()
{
    NSString *docspath = [NSHomeDirectory() stringByAppendingPathComponent:@"documents"]; 

        Car * retrieveCar = [NSKeyedUnarchiver unarchiveObjectWithFile:docspath];
       // for(int i=0 ; i<studentList.count;i++)
        {
          //  Car * retrieveCar =[studentList objectAtIndex:0];

    NSString * first  = retrieveCar.model;
    NSString * first1 = retrieveCar.make;
    NSString * first2 = retrieveCar.color;
    NSString * first3 = retrieveCar.year;
    NSLog(@"%@",first );
    NSLog(@"%@",first1 );

    NSLog(@"%@",first2 );
    NSLog(@"%@",first3 );
}

但这只需要一个值并使用一个值。我想将NSKeyedArchiever对象保存在一个数组中,以便多个汽车可以使用相同的代码作为其中的一部分。并加载与上面相同的内容。请使用纠正这个问题。我想运行多辆汽车的代码,我可以在搜索汽车,删除汽车记录和添加汽车的汽车阵列中执行以下任务。

0 个答案:

没有答案