从Plist存储和检索

Lia*_*rth 4 cocoa-touch objective-c plist nsarray ios

可能重复:
iOS:将两个NSMutableArray存储在.plist文件中

我总是不使用钳子,因为我不确定如何使用它.

谁能给出一个使用plist 的简单代码示例?我有兴趣保存一个NSArrayNSDictionary一个plist,然后再次检索它.

是否有任何好处/坏处存储或者一个NSArray或一个NSDictionary?此外,是否有任何关于你可以或不能存储在plist中的规则?

Lol*_*z89 11

您可以将以下数据类型存储为.plist文件中的值:

  • NSArray的
  • NSMutableArray里
  • 的NSDictionary
  • 的NSMutableDictionary
  • 的NSData
  • NSMutableData
  • 的NSString
  • 的NSMutableString
  • 的NSNumber
  • 的NSDate

使用NSDictionary,您可以在plist中存储由某个键值对组成的关联数组.如果您只想保存数据系列,请使用NSArray.

要在plist文件中保存上述对象之一,只需写入:

- (NSString *)dataFilePath {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(
    NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    return [documentsDirectory stringByAppendingPathComponent:@"yourFileNameHere"];
}

 //Write to the plist

 [myArray writeToFile:[self dataFilePath] atomically:YES];

 //Read from the plist

 if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
     NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];
 }
Run Code Online (Sandbox Code Playgroud)