阅读/写入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]];