2013-01-14 74 views
0

我的應用程序中有一個plist,它已經在appstore中。用戶可以在該plist中進行保存/更改。它存儲在apps Documents文件夾中。iOS plist保存更新

如果用戶更新到新版本,或者返回到默認值(應用程序包中發送的內容),這個plist是否會保留?

在此先感謝。

回答

1

這取決於你如何編碼的應用程序......但是,如果你的應用程序設置爲當有plist中只加載到你的包目前不是一個plist,而不應該被覆蓋。

我已經更新今天走出來,我的plist數據仍然存在......

這是一個plist中應如何複製到您的資源捆綁文件夾中的第一次用戶啓動應用程序:( *請注意,如果用戶刪除應用程序,然後下載更新數據將會消失)

if (![fileManager fileExistsAtPath: path]) { 
    NSString *bundle = [[NSBundle mainBundle] pathForResource:@"YourPLIST" ofType:@"plist"]; 

    [fileManager copyItemAtPath:bundle toPath: path error:&error]; 
} 
2

用戶更新的文檔中的plist應該是安全的:應用程序包中的數據(如資源路徑)會被覆蓋,但用戶的Documents and Library文件夾中的數據不會被覆蓋。這就是爲什麼你可以更新應用程序,並仍然保持你的文件和偏好。

請注意,使用標準iOS調用來獲取文檔文件夾的路徑非常重要,而不是(例如)對路徑進行硬編碼。

參見:

iphone: preserve user data against app update

app data loss on version upgrade