iOS:如何使用应用程序相关的用户数据保存NSOrderedSet?

时间:2014-02-17 18:50:02

标签: ios objective-c plist nsorderedset

我需要将NSOrderedSet保存为内部NSDictionary对象的容器。我试图将该集保存为plist,但此类无法保存在此处。有没有其他方法可以轻松保存,不要去核心数据丛林?

3 个答案:

答案 0 :(得分:4)

您可以使用NSCoding。我发现它非常方便。

保存:

NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [array[0] stringByAppendingPathComponent:@"my_set"];

NSOrderedSet *my_set = [NSOrderedSet orderedSetWithObjects:@"a", @"b", @"c", nil];
[NSKeyedArchiver archiveRootObject:my_set toFile:path];

检索:

my_set = [NSKeyedUnarchiver unarchiveObjectWithFile:path];

答案 1 :(得分:2)

将有序集保存为数组:

NSOrderedSet *set = ... // your ordered set
NSArray *array = [set array];
// Now write the array to the plist

信,

// read the array from the plist
NSArray *array = ... // array from plist
NSOrderedSet *set = [NSOrderedSet orderedSetWithArray:array];

答案 2 :(得分:1)

使用NSOrderedSet - (NSArray *)array方法获取数组对象并使用NSArray的- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag来写入plist文件