2012-04-02 38 views
3

我想創建自己的plist文件以用於我的應用程序,我正在使用apple documents作爲參考。如何在xcode中創建plist文件4.3.2

但是,我讀過如果您創建自己的plist,則需要將其放置在應用程序構建的資源文件夾中。這個問題是,我沒有資源文件夾在我的構建...所以我正在磨損我該怎麼辦?我已經讀過這個傢伙回答here,他說罰款只是將plist文件放在支持文件文件夾..這是可以做的問候允許plist讀取和寫入嗎?

+1

一旦安裝到設備上,就無法寫入應用程序包。一旦安裝了應用程序,您需要將其複製到應用程序沙箱中,然後您可以從那裏讀取和寫入。在xcode項目方面,你可以把文件放在你想要的任何地方 – 2012-04-02 22:46:49

回答

3

你可以把那個plist文件放到你想要的任何地方。 重要的是將其複製到包中。所以要確保檢查 project settings>build phases>copy bundle resources

您可以通過在項目導航器中左鍵單擊項目來打開項目設置。

+0

非常感謝你的快速回復..好吧,我現在明白了..我已經準備好了它需要在捆綁中,但不是100%是或不是包含在那.. – 2012-04-02 22:49:43

5

要閱讀和寫入plist,最好的做法是將其複製到文檔根目錄,如果你想通過你沒有寫權限的包來訪問它。我在這裏提供了代碼的快照,以及如何完成此操作。

NSError *err; 
NSFileManager *fileManager = [NSFileManager defaultManager]; 
//getting the path to document directory for the file 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentDir = [paths objectAtIndex:0]; 
NSString *path = [documentDir stringByAppendingPathComponent:@"YourFile.plist"]; 

//checking to see of the file already exist 
if(![fileManager fileExistsAtPath:path]) 
{ 
    //if doesnt exist get the the file path from bindle 
    NSString *correctPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"YourFile.plist"]; 
    //copy the file from bundle to document dir 
    [fileManager copyItemAtPath:correctPath toPath:path error:&err];  
} 
+0

好吧謝謝,我想如果一個教程早些時候這與此非常相似。我正在考慮設置一個控制器類來完成所有plist的工作,所以當我需要寫一些東西給它時,我可以調用我需要的那個類的方法。等等..你認爲這是一個好主意嗎? – 2012-04-03 01:38:55

+0

是的,這是一個很好的做法,它會照顧代碼重複,如果你需要幫助,我可以告訴你一個我創建的類來讀寫plist? – darv 2012-04-04 01:53:34

+0

你會相信我已經設法按照教程,我有一切和runinng真的很好..但是,我現在試圖添加一個字典到plist的根詞典..並不知道如何去建立值等..我有一個問題在這裏,你可能能夠幫助我..:P http://stackoverflow.com/questions/10003856/how-to-add-values-to-a-dictionary - 內部-A-字典的-A-屬性列表 – 2012-04-04 01:57:31