阅读/写入plist,文件结构不正确
问题描述:
我在学习如何将一些简单的模型对象保存/加载到plist文件。阅读/写入plist,文件结构不正确
的模型对象被称为“人”,并有2个字符串属性“姓名”,“地址”
我加入以下的plist文件,只是为了测试负载(是结构是否正确?):
<plist version="1.0">
<array>
<dict>
<key>Name</key>
<string>name1</string>
<key>Address</key>
<string>address1</string>
</dict>
<dict>
<key>Name</key>
<string>name2</string>
<key>Address</key>
<string>address2</string>
</dict>
</array>
</plist>
我加载像这样
-(void)load
{
NSError *error;
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: [self plistPath]])
{
NSString *bundle = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"]; //5
[fileManager copyItemAtPath:bundle toPath: [self plistPath] error:&error];/
}
NSMutableDictionary *savedStock = [[NSMutableDictionary alloc] initWithContentsOfFile: [self plistPath]];
NSLog(@"%lu",(unsigned long)savedStock.count);
}
-(NSString*)plistPath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //1
NSString *documentsDirectory = [paths objectAtIndex:0];
return [documentsDirectory stringByAppendingPathComponent:@"data.plist"];
}
但我如何获得一个封装包含我的实际数据字典的阵列?
答
您保存的plist是NSArray
,所以您应该将它取回为NSArray
这样。
NSArray *savedArray = [NSArray arrayWithContentsOfFile:[self plistPath]];