Ixx*_*Ixx 4 realm ios swift realm-mobile-platform
我将代码分割成许多小函数,这些函数有时要在事务内一起执行。因此,我在某处创建 aRealm并打开一个write块,在该块内我调用所有函数。
到目前为止,我一直将Realm实例作为参数传递给函数以便重新使用(对于像 之类的调用realm.add),但我想知道这是否真的有必要?Realm在需要的地方简单地创建一个新实例有什么缺点吗?我还想知道,如果这不是问题,如果这个新领域正在由另一个领域实例“启动”的事务中使用,这是否可能是一个问题。
最后,我还想知道用于抑制执行更新通知块的通知令牌是否可能存在任何问题 - 为此,Realm我使用的特定实例并不重要,对吧?
PS我只讨论Realm在同一线程中使用,我知道多线程的限制。
Realm如果您想以这种方式构建代码,那么在函数之间传递实例并没有什么坏处。在同一线程上打开多个实例实际上并没有任何明显的开销Realm,因为 Realm Cocoa 有一个内部缓存,在同一线程上出售 Realm 时会使用该缓存。
我认为反对重复打开 s 的一个可能的论点Realm是,您必须使用try!,或者将每次打开 a 的尝试包装Realm在do-catch块中。但在大多数情况下,如果您已成功打开一个 Realm,通过创建更多Realm实例再次打开它不会导致与文件相关的错误(只要您没有通过移动底层数据库文件来滥用 Realm)。
您也不应该担心特定实例未发出的通知令牌Realm,或者在另一个实例的写入事务中使用一个Realm实例Realm;如果您确实在同一个线程上工作,Realm 在您描述的情况下应该可以正常工作。(如果没有,请向我们提交错误!)
更一般地说,最好仅在遇到性能问题并且 Instruments 已将特定操作识别为潜在性能瓶颈时才担心优化。就您的情况而言,我认为您可以选择更适合您个人喜好的解决方案。
| 归档时间: |
|
| 查看次数: |
687 次 |
| 最近记录: |