答案 0 :(得分:0)
注意:我不与Realm合作,所以我可以在这里偏离主题......不要犹豫告诉我。
我们发现Realm()
会引发错误,但由于您使用的是try!
而不是使用Do-Catch和错误处理,因此您只会遇到崩溃而不是错误消息。
因为你在评论中提出“但我怎么能用do / catch语句声明app wise变量,因为它不允许在顶级?”,我只是将该属性设置为Optional并填充其视图/窗口/ init加载时的内容。
在班级的根源:
let realm: Realm?
在viewDidLoad
或init
或启动时调用的任何其他适合您需求的方法:
do {
self.realm = try Realm()
} catch let error as NSError {
print(error.debugDescription)
// handle errors here
}
然后在您的应用中,在使用前安全解开:
if let realm = self.realm {
// do your work with `realm`
}
甚至更好,遵循“快乐的道路”并使用警卫:
guard let realm = self.realm else { return }
// do your work with `realm`
如果您不想处理在任何地方展开Optional属性,可以将其声明为隐式解包的可选:
let realm: Realm!
但是在初始化部分中,在尝试访问该值之前,不要忘记在应用程序执行时如果它为零。
do {
self.realm = try Realm()
} catch let error as NSError {
print(error.debugDescription)
fatalError("Can't continue further, no Realm available")
}