2013-03-11 132 views
2

我真的很新的目标C保存文件,但我想要完成的是阅读位于文档目录启动或创建它的plist文件如果它不存在。阅读plist到nsmutabledictionary,更新字典,然后再保存它

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

在viewWillUnload启动之前,NSMutableDictionary应该再次保存到plist文件中。

我创建了plist中,但我需要一种方法来写的NSMutableDictionary的正确方法(类和我result.text字符串。

而且我还需要向的NSMutableDictionary保存到plist文件和读取plist中插入推出的字典

一些帮助,这将是要命:。d

谢谢你们

在SAVEFILE无效我这样做:

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中已经存在的数据。

再次感谢

回答

2

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

[dict writeToFile:path atomically:YES]; 

加载保存字典

dict = [NSMutableDictionary dictionaryWithContentsOfFile:path]; 

编码愉快!

+0

呀问题本身是坏的,真正的问题是如何将项目添加到字典本身。当我将viewDidLoad中的项目添加到字典中(如果列表不存在)[dict setValue:@“pizza”forKey:@“food”];然后当用户按下保存按钮时,我尝试做同样的事情,但选择了当前值和类别。当我然后nslog字典,我只看到值添加在saveTap无效,而不是在viewDidLoad中,这是真正的问: – 2013-03-11 20:31:46

+0

发布您的代码...没有人没有人可以帮助.. :) – Guru 2013-03-12 02:03:07

+0

哦,在这里,我们将更新上面的帖子,代码如下: – 2013-03-12 22:05:13

2

如果你想包含在字典词典和数组是可变的,以及然后执行以下操作:

NSData *data = [NSData dataWithContentsOfFile:path]; 
NSError *error; 
storeDict = 
    [NSPropertyListSerialization 
      propertyListWithData:data 
         options:NSPropertyListMutableContainersAndLeaves 
          format:nil 
          error: &error];