2011-03-15 54 views
0

我正在嘗試寫一本字典給plist。 以下代碼不會報告任何錯誤,但我找不到我應該寫入的文件的任何跟蹤。 這裏是代碼片段:寫一個plist

NSDictionary *myDictionary = [NSDictionary dictionaryWithObjectsAndKeys: 
@"First letter of the alphabet", @"A", 
@"Second letter of the alphabet", @"B", 
@"Third letter of the alphabet", @"C", 
nil 
]; 

可以看我的字典內容有兩種方法正確顯示來電:

NSLog(@"Here is my partial dictionary %@", myDictionary); 

for (NSString *key in myDictionary) 
    NSLog(@"here it is again %@ %@", key, [myDictionary objectForKey:key]); 

下面的代碼顯示在程序反覆運行

當「成功」的消息
if ([myDictionary writeToFile: @"myDictionary" atomically:YES ] == NO) 
    NSLog(@"write to file failed"); 
    else 
    NSLog(@"write to file succeeded"); 

即使將原子參數:參數更改爲NO以不寫入臨時文件。 但是,當我搜索我的當前目錄,甚至是我的整個Mac時,我找不到任何名爲「myDictionary.plist」的文件或任何帶有字符串「myDictionary」的文件。

是不是路徑變量「@myDictionary」應該表示當前目錄下的文件,即類可執行文件所在的位置?

回答

0

你的代碼告訴系統在文件上寫字典,但是在什麼文件上,文件位置的路徑是什麼? Alekkhya的代碼是這樣做的,它定義了應用程序沙箱中的一個特定目錄(Documents目錄),獲取它的路徑並在那裏寫入文件。我建議你閱讀this

+0

我沒有看到你已經發布的代碼中的路徑或目錄的任何聲明 – Vin 2011-03-15 09:11:16

+0

沒有代碼片段[myDictionary writeToFile:@「myDictionary」atomically:YES]指定「myDictionary」爲寫入文件當前目錄?至少這就是參考書(例如Kochan,436頁)所說的。 – Namhcir 2011-03-15 09:14:26

+0

我不這麼認爲。您必須獲取要寫入的目錄的引用。沒有什麼像當前目錄。請記住,您的應用正在沙盒環境中執行。我建議你從我的帖子中的鏈接閱讀蘋果文檔。 – Vin 2011-03-15 09:16:34