在开发一个新的Swift 3 iOS应用程序时,我已经使用了几天了,总的来说,与CoreData相比,使用它更令人愉快。
然而,这些文档似乎不够详细,不足以帮助我找出确切的.
let realm = try! Realm()
...does,以及使用这个行的多个版本是否有意义(甚至是强制性的),或者对于整个应用程序来说,一个调用就足够了。
所以如果任何对领域有深入了解的人能帮上忙,我会很感激的。
我的问题,按重要性顺序排列:
try!
及其所有方法?这仅仅是为了简化各种教程和示例源文件中的演示吗?或者我们实际上是要在使用领域时抑制类似于生产中的错误?感谢所有的输入,因为领域文档和示例文件似乎没有提供这些问题的答案,除非我是盲人,这是一种可能性,因此我愿意被指向相关的文档/参考页面(如果适用)。
发布于 2016-11-22 19:38:24
感谢您使用领域!我们将研究如何使文档更加清晰。同时:
realm
。特别是,Realm()
为您提供了默认的领域,即使用默认配置对象指定其配置的领域。(如果您的应用程序只有一个领域,您可以使用这个API获得对它的引用,而不必显式地传递配置结构。)您可以像调用任何其他Swift对象一样在此实例上调用API,或者将其传递到需要Realm
参数的其他API中。realm
实例就像使用普通对象一样,不要担心流或任何其他隐藏状态。唯一的限制是不应该在线程或队列之间传递Realm
实例。try!
主要是为了简洁。生产应用程序是否需要避免使用try!
取决于是否可以合理地期望它从打开领域的失败尝试中恢复,以及如果某个领域未能打开,是否需要发生特殊行为。您可以看到可能的错误,这里。最后一个注意事项:在Swift中的领域(即磁盘上数据库)和Realm
类的实例之间有一个重要的区别。如果多个Realm
实例是用相同的配置值创建的,则它们可以引用相同的底层领域数据库。例如,您可能在应用程序的不同部分,或者在不同的线程上有多个Realm
实例(为了满足上述相同的线程需求)。我们的一些用户选择创建一个“manager”单例对象,该对象在启动时打开一个特定的领域,处理可能发生的任何错误,并将Realm
实例外包给可能需要从数据库中读取或写入的UI代码。当然,这种模式是否适合您取决于您的编码风格和应用程序的特定需求。
希望这能帮上忙!
发布于 2016-11-22 05:54:02
据我所知,这可能并不是真的正确:
try
意味着你可以抛出你想要处理的错误,使用try!
表示你跳过错误,如果你想处理它,结合do
和catch
来处理错误。https://stackoverflow.com/questions/40734589
复制相似问题