2012-02-19 84 views
1

我使用以下代碼來編寫成的plist:寫入的Plist在IOS 5.0.1

NSMutableArray *d = [[NSMutableArray alloc] initWithContentsOfFile: 
        [[NSBundle mainBundle] pathForResource:@"FavoritesTaxi" ofType:@"plist"]]; 
[d addObject:self.dataItem]; 


// write dictionary to plist 
[d writeToFile:[[NSBundle mainBundle] pathForResource:@"FavoritesTaxi" ofType:@"plist"] atomically:YES]; 
[d release]; 

我測試此代碼在4個不同的設備(2個模擬器和2周真實的iPhone)。 它的工作在以下方面: iPhone 4.3模擬器 iPhone 5.0模擬器 iPhone 4.3真實設備

但它並沒有做好以下工作: iPhone 5.0.1實際設備。

我真的不知道爲什麼會發生這種設備。任何想法爲什麼?它的解決方案是什麼?

回答

2

您無法修改設備上的主包,您沒有權限執行此操作。所以你不能寫一個plist到主包中。我懷疑這在4.3設備上工作,它可能不會給你一個錯誤。

您應該將數據保存到文檔目錄中,此處有大量代碼示例用於獲取文檔目錄的路徑。

+0

你說得對。所以,現在,如果我在我的項目中創建了一個plist,並且想將其放入文檔目錄中,則必須選擇plist,打開實用程序,並在「位置」中選擇「相對於開發人員目錄」?然後,而不是寫在mainbundle文件,我寫它的文件目錄?或者代碼中是否有更多修改? – 2012-02-19 20:36:00

+0

通常情況下,如果您有一個現有的plist,然後用戶可以修改並重新保存,則可以在第一次將其包含在軟件包中,然後在第一次運行時將其複製到代碼中的文檔目錄中。再次有很多樣品,或者你可以問一個新的問題。 – jrturton 2012-02-19 20:52:10