0

我正在研究RealmSwift,它是 Swift 中 CoreData/SQLite 的现代数据库替代品。

我想知道如何实现一个Class可以管理/处理RealmSwift 框架的所有查询的设计

这个问题有点类似于实现 SQLite 模型管理器,但对于 RealmSwift。

具体来说,我不需要上面提到的单例对象/实例。

4

2 回答 2

7

Realm 有一个相当聪明的内部缓存系统,Realm每次调用类似的调用let realm = try! Realm()时,以前的实例都会被保留并回收。因此,这并不是真正必要的,也不建议尝试将Realm实例本身合并到单例中。

如果您想大量自定义Realm实例的设置,您通常会通过一个Configuration静态且线程安全的 Realm 对象来实现。Configuration如果是这种情况,当您需要创建一个新Realm实例时,拥有一个返回适当对象的单例(甚至只是一个静态类方法)会更合适。

swift 中的那个东西有一个关于如何在 Swift 中创建单例的页面,它本质上只是一个类实现的单个静态属性:

class SomeManager {
    static let sharedInstance = SomeManager()
}
于 2016-03-22T04:19:15.070 回答
1

在一种情况下使用枚举:

enum Singleton: Protocols {
    case instance
    /// methods
}

像这样使用:

Singleton.instance.method(args)
于 2016-03-22T04:04:08.333 回答