2

我对在目标 C 中保存文件真的很陌生,但我想要完成的是在启动时读取位于文档目录中的 plist 文件,或者如果它不存在则创建它。

它应该被读入 NSMutableDictionary。稍后在应用程序中,我应该能够将项目保存到 NSMutableDict,并将类别作为键 + 文本。

viewWillUnload NSMutableDictionary 中的 before launch 应该再次保存到 plist 文件中。

我已经创建了 plist,但我需要一种以正确方式写入 NSMutableDictionary 的方法(类别和我的 result.text 字符串。

而且我还需要将 NSMutableDictionary 保存到 plist 文件中,并在启动时将 plist 读入字典。

对此有一些帮助会很棒:D

多谢你们。

在保存文件 void 我这样做:

    storeDict = [[ NSMutableDictionary alloc]
                 init];
    [storeDict setObject:resultText.text forKey:@"kvitto"];
    [storeDict setObject:kategori forKey:@"kategori"];
    [storeDict writeToFile:[self saveFilePath] atomically:YES];

saveFilePath 看起来像这样:

- (NSString *) saveFilePath {
    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    return [[path objectAtIndex:0] stringByAppendingString:@"savefile.plist"];
}

这些值是从用户扫描的代码中收集的字符串,所以不要担心它们。那么我如何正确保存这个,保留savefile.plist中已经存在的数据。

再次感谢

4

2 回答 2

3

如果您希望字典中包含的字典和数组也是可变的,请执行以下操作:

NSData *data = [NSData dataWithContentsOfFile:path];
NSError *error;
storeDict = 
    [NSPropertyListSerialization 
            propertyListWithData:data 
                         options:NSPropertyListMutableContainersAndLeaves
                          format:nil
                           error: &error];
于 2014-03-29T17:11:02.260 回答
2

为什么不能使用 writeToFile api?在这里写问题之前,您必须谷歌或检查 NSMutableDictionary 的苹果文档。

[dict writeToFile:path atomically:YES];

加载保存的字典

 dict = [NSMutableDictionary dictionaryWithContentsOfFile:path];

快乐编码!

于 2013-03-11T15:43:06.750 回答