删除所有Couchbase数据/文档ios(或删除所有ios数据?)

问题描述:

有没有任何有效的方式来删除所有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

我建议使用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