2011-02-25 59 views
12

我一直保存在我的iPad應用程序在私有目錄中的文件,即一個回來,當我使用:更新iOS應用程序是否刪除庫目錄文件?

paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); 
documentsDirectory = [paths objectAtIndex:0]; 
documentsDirectory = [documentsDirectory stringByAppendingPathComponent:@"Private Documents"]; 

請注意,我還一個子目錄追加到它。當我更新應用程序時,用戶告訴我他們在應用程序中的進展正在被破壞。每次更新應用程序時,這個NSLibraryDirectory中的文件是否被破壞?如果是這樣,我應該使用NSDocumentDirectory嗎?

此外,有沒有辦法進一步更新我的應用程序來補救這一點,而不會破壞我所有我當前用戶的保存文件?它似乎並不存在。

回答

2

您應該將它們保存在Documents文件夾中,它在更新中保持不變。

的MonoTouch:documentsDirectory = environment.specialfolder.personal;

的Objective-C:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)

+0

我真的不明白你上面的代碼行。你可以解釋嗎?從我收集的內容來看,我可以使用NSDocumentDirectory而不是上面所做的操作,並且應該保護subdir免於被擦除,是否正確? – Joey 2011-02-25 21:35:24

+0

是的,這是正確的。上面的代碼爲您提供了文檔目錄的字符串路徑。更清潔的做法IMO。 – 2011-02-25 21:39:04

+0

克里斯,你確定你在談論iOS嗎?因爲沒有什麼像「environment.specialfolder.personal」。或者你在談論的定製解決方案訪問此。 – 2011-05-24 16:43:50

3

我也想補充這些信息與一個大型的在線遊戲中的個人經驗。你不能100%地依靠你的「文檔」和「圖書館」文件夾永遠在那裏。實際上,在更新之後,您不能依靠您的應用程序文件夾仍然位於設備上的相同位置。

讓我再解釋一下。當你在你的設備上安裝應用程序時,真正的路徑將是/ var/mobile/Applications/[某些班級ID]/[你的應用] .app/... 我們不確定誰定義了你的班級ID應用程序(iOS或應用程序商店),但更新遊戲時此ID可能會更改,導致您的應用程序位於不同的文件夾中,因此您的舊文件不再存在。我們的QA也經歷過它和我們的用戶。

我不會通過我們如何發現了,我們如何設法解決這個問題(私營公司的東西,通常的狗屎......)的細節去,但你需要考慮,如果你正在做的影響噸用戶的應用程序,可能會更新幾次。它可能已經被修復,但是有一個備份計劃總是很好的。

+0

其實我認爲我在我的應用程序中也遇到了這個問題...... – Peres 2013-03-22 22:00:53

+0

只有一個問題,您的應用程序的名稱是否在名稱或空格中添加了特殊字符?因爲我懷疑...... – Peres 2013-03-22 22:14:28

+2

通過蘋果API檢索的路徑提供了有關您的應用位於的地址的抽象。在更新過程中,iOS會將您的文檔目錄備份到新位置。 [some class id]或[you app] .app name中的更改不會影響您的Documents目錄文件。你的假設是不正確的海事組織。 ref:https://developer.apple.com/library/ios/DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTuning/PerformanceTuning.html#//apple_ref/doc/uid/TP40007072-CH8-SW10 – tGilani 2013-12-05 06:50:55

17

當用戶下載應用程序更新時,iTunes會將更新安裝到新的應用程序目錄中。然後在刪除舊安裝之前,將用戶的數據文件從舊安裝移到新的應用目錄。在下面的目錄中的文件保證在更新過程中被保留:

APPLICATION_HOME /文件

APPLICATION_HOME /庫

雖然在其他用戶目錄中的文件也可以被移動過,你不應該依賴他們在更新後出席。

這是由蘋果官方提供的。看到這個鏈接: iOS Developer Library - File Saved During App Updates

+3

鏈接「iOS Developer Library - 應用程序更新期間保存的文件「已損壞 – yair 2015-01-28 11:30:28

+1

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTips/PerformanceTips.html – 2016-03-11 08:29:35

相關問題