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

时间:2015-10-13 15:03:37

标签: ios couchbase couchbase-lite

是否有任何有效的方法可以通过ios中的CBL删除所有文档存储?我遇到了这方面的问题,或者如果有人知道如何基本上使应用程序就像刚刚安装的那样非常有帮助。我们正在尝试确保我们的注销实际上将应用程序设置为第一次打开它,因此不会保留任何数据。我尝试过一些东西,但无济于事,我错过了什么吗?许多搜索结果都得到了很少的帮助。

这也不起作用(Is there any way to clear all data stored from the installation of app?

我还尝试删除应用程序主目录中的所有文件,这些文件在某种程度上有效但导致我假设的问题是因为这不是应该如何完成的。是否应该包含我所说的数据所在的文件夹?

提前谢谢你。

1 个答案:

答案 0 :(得分: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;