从Plist存储和检索

时间:2012-04-29 15:19:10

标签: objective-c ios cocoa-touch nsarray plist

  

可能重复:
  iOS: store two NSMutableArray in a .plist file

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

有人能提供使用plist的简单代码示例吗?我有兴趣将NSArrayNSDictionary保存到plist,然后稍后再次检索。

存储NSArrayNSDictionary是否有任何优点/缺点?此外,是否有任何关于你能够或不能存储在plist中的规则?

1 个答案:

答案 0 :(得分: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];
 }