保存未知数量的NSArrays

时间:2014-02-07 05:15:50

标签: ios objective-c nsarray

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

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

我有两个问题:

  1. 如何将这些NSArrays保存到磁盘?有人说使用 NSUserDefaults ,其他人说要使用 NSKeyedArchiver

  2. 跟踪这些数组的最佳方法是什么?使用数组来存储这些数组是否明智?

  3. 提前致谢!

3 个答案:

答案 0 :(得分:1)

如果您的数组包含所有属性列表对象(NSStringNSDataNSDateNSNumberNSArrayNSDictionary个对象)然后,您可以将数组(或数组数组)直接保存到plist或用户默认值。

如果您的阵列中有任何非属性列表对象,则需要符合NSCoding协议并使用NSKeyedArchiver

属性列表更容易。

答案 1 :(得分:0)

您可以使用数组存储阵列 并使用plist将这些保存到数组中,这样您就可以在内存中以相同的格式保存以显示结果。
您可以阅读plist enter link description here

的以下教程

答案 2 :(得分:0)

        //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];