2011-05-16 68 views
0

在我的資源文件添加新項目的plist我已經創建了一個plist中,我將項目添加到PList 爲EXM:通過使用設備

plistarray=[NSMutableArray arrayWithContentsOfFile:@"/Users/mangomac2/Desktop/chat module/complete (iphoneDesign) 2/picture-vide 2/Data.plist"]; 
    if (plistarray==nil) 

     plistarray=[NSMutableArray array]; 
    [plistarray addObject:datadict]; 
    [plistarray writeToFile:@"/Users/mangomac2/Desktop/chat module/complete (iphoneDesign) 2/picture-vide 2/Data.plist" atomically:YES]; 
    [datadict release]; 

我的數據添加到plist中,但每當即時上傳我的代碼對其設備不添加plist也不檢索plist。

請告訴我我在哪裏犯錯誤。

回答

0

首先,您對應用程序進行硬編碼,而不考慮應用程序將安裝在設備模擬器上的不同位置以及可能位於每個不同設備上的不同位置好。第二,似乎你正在嘗試更新應用程序包內的文件;這是不允許的,並且如果iOS使用文件系統權限強制執行應用程序包的不可寫入性,則可能會失敗。

要在您的包中找到文件,應該使用NSBundle類的相應方法。例如,要獲取文件Data.plist的路徑,可以使用[[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"]

如果您想要修改此文件,您必須先將其複製到可寫位置(然後將來從此位置而不是從您的包中讀取)。您可以使用NSSearchPathForDirectoriesInDomains獲得適當的目錄。例如,[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]會爲您提供應用程序Documents目錄的路徑。然後,您可以使用類似[directory stringByAppendingPathComponent:@"Data.plist"]的文件來獲取可存儲Data.plist的位置的完整路徑和文件名。