Ios 正在保存未知数量的NSArray

Ios 正在保存未知数量的NSArray,ios,objective-c,nsarray,Ios,Objective C,Nsarray,我想制作一个iOS应用程序,用户可以在其中存储基本对象的列表。这些对象的每个属性大约只有3-4个 用户可以创建尽可能多的这些列表(NSArray) 我有两个问题: 我如何将这些NSArray保存到磁盘?有些人说使用NSUserDefaults,有些人说使用NSKeyedArchiver 跟踪这些阵列的最佳方法是什么?使用数组存储这些数组是否明智 提前谢谢 您可以使用数组来存储数组。 并使用plist将这些数据保存到数组中,这样您就可以使用与显示结果所需的内存格式相同的格式进行保存。 如果数组包含

我想制作一个iOS应用程序,用户可以在其中存储基本对象的列表。这些对象的每个属性大约只有3-4个

用户可以创建尽可能多的这些列表(NSArray)

我有两个问题:

  • 我如何将这些NSArray保存到磁盘?有些人说使用NSUserDefaults,有些人说使用NSKeyedArchiver

  • 跟踪这些阵列的最佳方法是什么?使用数组存储这些数组是否明智


  • 提前谢谢

    您可以使用数组来存储数组。
    并使用plist将这些数据保存到数组中,这样您就可以使用与显示结果所需的内存格式相同的格式进行保存。

    如果数组包含所有属性列表对象(
    NSString
    NSData
    NSDate
    NSNumber
    NSNumber
    NSArray
    NSDictionary
    对象),则可以将数组(或数组数组)直接保存到plist或用户默认值

    如果数组中有任何非属性列表对象,则需要遵守
    NSCoding
    协议并使用
    NSKeyedArchiver

    属性列表更容易

            //Initialize an array with 3 objects and store to NSUserDefaults
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSArray *arrayOfUserA = [[NSArray alloc] initWithObjects:@"Obj1", @"Obj2", @"Obj3", nil];
    [defaults setValue:arrayOfUserA forKey:@"arrayOfUserA"];
    [defaults synchronize];
    
    //Get the array back, modify and save again
    arrayOfUserA = [defaults valueForKey:@"arrayOfUserA"];
    NSMutableArray *modifiedArray = [[NSMutableArray alloc] initWithArray:arrayOfUserA copyItems:YES];
    [modifiedArray addObject:@"Obj4"];
    arrayOfUserA = [modifiedArray copy];
    [defaults setValue:arrayOfUserA forKey:@"arrayOfUserA"];
    [defaults synchronize];