xcode iOS:在 .plist 文件中存储两个 NSMutableArray

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/6070568/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 21:04:57  来源:igfitidea点击:

iOS: store two NSMutableArray in a .plist file

objective-cxcodeiosnsmutablearrayplist

提问by cyclingIsBetter

I want to store two NSMutableArray that I use as global array in AppDelegate. These two array are also store with NSUserDefaults. Now I want to know how I must create this file and how can I store these two array everytime I modify them. Can You help me?

我想在 AppDelegate 中存储两个用作全局数组的 NSMutableArray。这两个数组也存储在 NSUserDefaults 中。现在我想知道我必须如何创建这个文件以及如何在每次修改它们时存储这两个数组。你能帮助我吗?

回答by Julian

  1. Create an NSArray containing your two NSMutableArrays.

    NSArray *array = [NSArray arrayWithObjects:<#(id), ...#>, nil];
    
  2. Write the array to a file.

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    NSString *libraryDirectory = [paths objectAtIndex:0];
    NSString *location = [libraryDirectory stringByAppendingString:@"/somefilename.plist"];
    [array writeToFile:location atomically:YES];
    
  3. Load the array from the file.

    NSString *path = [bundle pathForResource:@"file" ofType:@"plist"];
    NSArry *array = (path != nil ? [NSArray arrayWithContentsOfFile:location] : nil);
    
  1. 创建一个包含两个 NSMutableArray 的 NSArray。

    NSArray *array = [NSArray arrayWithObjects:<#(id), ...#>, nil];
    
  2. 将数组写入文件。

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    NSString *libraryDirectory = [paths objectAtIndex:0];
    NSString *location = [libraryDirectory stringByAppendingString:@"/somefilename.plist"];
    [array writeToFile:location atomically:YES];
    
  3. 从文件加载数组。

    NSString *path = [bundle pathForResource:@"file" ofType:@"plist"];
    NSArry *array = (path != nil ? [NSArray arrayWithContentsOfFile:location] : nil);