2015-10-13 83 views
3

有沒有任何有效的方式來刪除所有CBL在ios文件存儲?我遇到了這個問題,或者如果有人知道如何從本質上製作應用程序,就好像它剛安裝一樣,這也會非常有用。我們正在努力確保我們的註銷實際上將應用設置爲如同您第一次打開該應用程序一樣,因此沒有數據持久存在。我嘗試了一些東西,但無濟於事,我錯過了什麼?許多搜索結果很少幫助。刪除所有Couchbase數據/文檔ios(或刪除所有ios數據?)

而且這並不工作,要麼(Is there any way to clear all data stored from the installation of app?

我也試圖在應用程序的主目錄,其工作原理有點,但會導致那我假設是因爲這不是事情應該怎麼做的問題刪除所有文件。文件夾中我所說的數據應該包含在哪裏?

預先感謝您。

+0

獲得該路徑有沒有你不通過Couchbase打算這樣做的理由Lite API?爲什麼不直接從管理器獲取數據庫名稱列表,然後獲取每個數據庫名稱並在其上調用'delete'? – borrrden

+0

感謝您的迴應,並且正如下面評論的那樣,當我在下班後回家後,最終做到了這一點。也適用於任何類似或可能更需要的人也如下所述。 cbl管理器有一個目錄方法,您可以使用DirectoryEnnumerator和filemanager清除以及其他包含文件夾的應用程序。 – thekevshow

回答

4

我建議使用Couchbase-lite API來清除由Couchbase-lite本身創建的所有數據。您可以使用其他(取決於您如何/在何處存儲此數據)方法來清除註銷時的其他用戶數據。

如果您只想刪除爲用戶創建的所有數據庫,請詢問CBLManager以獲取所有數據庫名稱。

/** An array of the names of all existing databases. */ 
@property (readonly) CBLArrayOf(NSString*)* allDatabaseNames; 

而且你可以使用異步刪除每個數據庫:

[manager backgroundTellDatabaseNamed:self.database.name 
            to:^(CBLDatabase *db) { 
            NSError *error; 
            if (![db deleteDatabase:&error]) 
             //bummer! 
            else 
             //success! 
            }]; 

如果你特別尋找一種方式來刪除文件,看看CBLDatabase API本地文件的。

/** Deletes the local document with the given ID. */ 
- (BOOL) deleteLocalDocumentWithID: (NSString*)localDocID 
          error: (NSError**)outError ; 

然而,這有不同的目的;在刪除數據庫之前,不需要刪除文檔。要清理註銷中的所有數據,只需刪除屬於用戶的所有數據庫。

此外,如果你還是堅持不使用CBL API,CBL文件存儲在默認目錄,可以通過CBLManager

/** The default directory to use for a CBLManager. This is in the Application Support directory. */ 
+ (NSString*) defaultDirectory; 
+0

謝謝,實際上,當我到家時,我的確清理了數據庫。我閱讀了一些文檔以刪除數據庫,當然,因爲我的問題最初指出我實際上是使用DirectoryEnumerator for文件夾和文件管理器(NSFilemanager)。我需要從應用程序中清除可能存儲的緩存和其他內容,以便我們可以清除註銷應用程序。感謝您的回覆,並驗證了我正確地清除了該問題。 – thekevshow

相關問題