Swift 3 类/属性引用语法 - Couchbase Lite

标签 swift class reference couchbase

我希望我能在 Swift 3 中的一些语法方面获得一些帮助,因为我对它还很陌生,并且开始深入研究我读过的简单书籍中没有的内容。我确实尝试在谷歌上搜索,但似乎很难找到我要找的东西。我正在尝试使用 Couchbase Lite 进行一些操作。

因此,在我的 AppDelegate 类中,我创建了一个变量,如“var database: CBLDatabase!”

在“func application(didFinishLaunchingWithOptions)”中,我调用startSession(),该函数调用openDatabase(),然后使用以下方法正确打开我的数据库:

尝试database = CBLManager.sharedInstance().openDatabaseNamed(dbname, with: options)

我可以使用查询获取数据库中的数据。此时,我正在设置一些默认的全局变量和几个数组,以便在应用程序的其他地方使用。

我的应用程序有几个 View Controller ,在其中一个 View Controller 中,我想返回查询数据库。我想使用我在 AppDelegate 类中设置的“数据库”对象来设置另一个查询。我认为它会是这样的:

let query2 = AppDelegate.database.viewNamed("myquery").createQuery()

但是当我开始输入语句时,自动填充从未找到类似的内容。我在其他帖子中找到了一些帮助,但我似乎永远无法完全获得正确的语法。

任何帮助将不胜感激。

谢谢, 大卫

编辑:我确实通过将“数据库”放置在 AppDelegate 类定义之上来将其设置为全局变量,但我不确定这是最佳实践,并且我希望尽量减少全局变量的使用。

最佳答案

我建议不要将东西放在 AppDelegate 中,而是使用单例模式来托管您需要跨 View Controller 访问的全局变量。基本上有一个“DatabaseManager”单例类,用于创建数据库实例并使其可用于其他 View Controller 。引用这个code snippet举个例子。

关于Swift 3 类/属性引用语法 - Couchbase Lite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44749470/

相关文章:

swift - DispatchQueue 是使用 RunLoop 吗?

ios - 日期格式化程序不适用于某些 iOS 设备

c++ - 将实现注入(inject)到 C++ 中的类中

java - 静态变量和方法是否属于该类的 java.lang.Class 对象?

swift - 数据库值计数

swift - 尝试将字典发布到我的后端

c++ - std::function 作为 & 发送的(非)const 输入参数

PHP 类 : referenced variable in one method affects non-referenced variable in other method

javascript - 段落上的 ckeditor 类未被识别

c# - 重新分配类索引的数组(引用类型)