从Plist存储和检索

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

我一直避免使用plists,因为我不确定如何使用。

任何人都可以给一个简单的代码示例使用plist? 我有兴趣将一个NSArrayNSDictionary保存到plist,然后再次检索它。

存储NSArrayNSDictionary有什么优点/缺点吗? 另外,是否有任何规则,关于你可以或不可以存储在一个plist?

可以将以下数据types作为值存储在.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]; }