当前位置:  开发笔记 > IOS > 正文

Swift中Realm实例的全局使用

如何解决《Swift中Realm实例的全局使用》经验,为你挑选了1个好方法。

在我使用Realm的每个视图控制器中,我将领域作为属性添加到每个类:

//Whatevs.swift
class Whatevs:NSViewController{
  let realm = try! Realm()
}

然后我通过课程在整个课程中引用它self.realm.

有没有理由不让它像这样全球可用的实例?

//Global.swift <-- General swift file in my app
let realm = try! Realm() //<-- Not inside a class

TiM.. 9

实际上,Realm如果它可以得到帮助,通常不会挂在实例上.:)

一旦Realm()在特定线程上调用,该实例将由Realm内部缓存,并且后续Realm()调用将返回相同的实例.因此,挂起作为类成员的Realm实例并没有明显的性能提升.

如果在应用程序中执行任何类型的线程操作,则需要小心存储Realm引用,因为调用self.realm后台线程将触发异常.

如果您只处理默认的Realm,那么最佳做法是let realm = try! Realm()在您实际需要时调用它.

如果您正在处理依赖于特定Configuration实例的不同类型的域,那么建议将它们存储为全局常量.Realm Configuration对象是线程安全的,因此可以将它们传递给后台线程以Realm在那里创建实例而没有任何问题.



1> TiM..:

实际上,Realm如果它可以得到帮助,通常不会挂在实例上.:)

一旦Realm()在特定线程上调用,该实例将由Realm内部缓存,并且后续Realm()调用将返回相同的实例.因此,挂起作为类成员的Realm实例并没有明显的性能提升.

如果在应用程序中执行任何类型的线程操作,则需要小心存储Realm引用,因为调用self.realm后台线程将触发异常.

如果您只处理默认的Realm,那么最佳做法是let realm = try! Realm()在您实际需要时调用它.

如果您正在处理依赖于特定Configuration实例的不同类型的域,那么建议将它们存储为全局常量.Realm Configuration对象是线程安全的,因此可以将它们传递给后台线程以Realm在那里创建实例而没有任何问题.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有