开发在Xcode for iOS中。我使用了2个单独的NSmutabledictionary。
我不想添加它们(搜索时我经常发现,但这不是我试图做的)
应用程序必须将它们存储在磁盘上,当应用程序启动时,它可以读取字典。
它不是自定义类,因此initWithCoder
而另一个不是必需的(这是对的吗?)
NSArray *data = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [data objectAtIndex:0];
path = [path stringByAppendingPathComponent:@"location"];
[NSKeyedArchiver archiveRootObject:"Dictionary" toFile:path];
这样可行,但是当我想保存另一个字典时,它将无法正常工作。我的第一个想法是将objectAtIndex更改为1.但是当我这样做时,Xcode给了我一个错误。当我只给出另一个名字时,它根本不会保存,但Xcode不会出错。
我做错了什么?
答案 0 :(得分:0)
// Find out where the documents folder is
NSString *documentsDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
// Create the file path for a file named 'location' inside the documents folder
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"location"];
// Write an array containing both of your arrays to a file at that path
[NSKeyedArchiver archiveRootObject:@[myFirstArray, mySecondArray] toFile:path];
然后,读回来:
// Read back the array containing the two arrays
NSArray *arrays = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
// Get the individual arrays from the array
NSMutableArray *myFirstArray = arrays[0];
NSMutableArray *mySecondArray = arrays[1];