2013-03-11 145 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];