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