我想將NSMutableDictionary對象的內容保存到文件中。我該怎麼做呢 ?我已經知道如何使用NSDictionary對象完成此任務,但我不知道如何將此NSMutableDictionary轉換/複製到NSDictionary ...除非有直接將NSMutableDictionary的內容寫入文件的方法...我強調NSMutableDictionary對象包含NSDictionary類型的對象。如何將NSMutableDictionary保存到文檔中的文件中?
THX幫助,
斯特凡
我想將NSMutableDictionary對象的內容保存到文件中。我該怎麼做呢 ?我已經知道如何使用NSDictionary對象完成此任務,但我不知道如何將此NSMutableDictionary轉換/複製到NSDictionary ...除非有直接將NSMutableDictionary的內容寫入文件的方法...我強調NSMutableDictionary對象包含NSDictionary類型的對象。如何將NSMutableDictionary保存到文檔中的文件中?
THX幫助,
斯特凡
NSMutableDictionary
是NSDictionary
一個子類:你可以使用任何你想使用NSDictionary
。從字面上看,只需將對象傳遞給您現在使用的代碼NSDictionary
即可。
在更一般的意義上,如果你確實需要從NSMutableDictionary
得到真正不變的NSDictionary
,只是呼籲NSMutableDictionary
copy
。
其他方法包括[NSDictionary dictionaryWithDictionary:]
或[NSDictionary alloc] initWithDictionary:]
,它們都基本上是相同的東西。
如果你只是擺動到NSDictionary文件。你會看到有用於保存字典文件
writeToFile:atomically:
的方法寫入的詞典內容的屬性列表表示給定的路徑。
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag
參數
路徑: 處的路徑寫入文件。 如果路徑包含代字符(〜)字符,則必須在調用此方法之前使用stringByExpandingTildeInPath對其進行擴展。
標誌: 一個標誌,指定文件是否應以原子方式寫入。
如果標誌爲YES,字典將寫入輔助文件,然後將輔助文件重命名爲路徑。如果標誌爲NO,則字典直接寫入路徑。 YES選項保證路徑(如果存在的話)即使系統在寫入期間崩潰也不會被破壞。
返回值
如果文件寫入成功則返回YES,否則返回NO。
此方法在寫出文件之前遞歸地驗證所有包含的對象是屬性列表對象(NSData,NSDate,NSNumber,NSString,NSArray或NSDictionary的實例),並且如果所有對象都不是屬性列表對象,因爲生成的文件不會是有效的屬性列表。
如果字典的內容都是屬性列表對象,則可以使用此方法編寫的文件用類方法dictionaryWithContentsOfFile或實例方法initWithContentsOfFile:來初始化新字典。
所以這塊您正在尋找的代碼可能是這樣的:
[myDict writeToFile:path atomically:YES]
其中myDict
是你有字典和path
是你想把它保存到
我的位置路徑'不知道writeToFile:原子性地直接在一個NSMutableDictionary對象上工作。這只是一個例子,顯示我們無法使用NSMutableDictionary,無論我們使用NSDictionary – Steve
它絕對會工作。你爲什麼會這麼想?沒有什麼操作,我可以想到,你會做一個NSDictionary,當嘗試在NSMutableDictionary上會失敗。無論如何,正如我所提到的,如果您有理由,可以使用'[myMutableDict copy]'或'[NSDictionary dictionaryWithDictionary:myMutableDict]'從一種類型轉到另一種類型。我想通了, – adpalumbo
。其實你是對的!對不起 – Steve