0
我有一个方法,应该返回Results
,通过成功查询,或通过创建记录,如果他们不存在。如何在创建记录后创建结果?
喜欢的东西:
class MyObject: Object {
dynamic var token = ""
static let realm = try! Realm()
class func findOrCreate(token token: String) -> Results<MyObject> {
// either it's found ...
let tokenResults = realm.objects(MyObject.self).filter("token = '\(token)'")
if !tokenResults.isEmpty {
return tokenResults
}
// ... or it's created
let newObject = MyObject()
newObject.token = token
try! realm.write {
realm.add(newObject)
}
// However, the next line results in the following error:
// 'Results<_>' cannot be constructed because it has no accessible initializers
return Results(newObject)
}
}
也许我应该从这个方法返回[MyObject]
。试图将其保留为Results
而不是Array
有什么好处吗?我想我会失去延期评估的任何好处,因为我已经在方法中使用了isEmpty
,对吗?
啊对,谢谢!我在想,也许我应该能够创建一个'Results',就好像它是一个简单的主键查询一样,只是为了让成功的案例不必失去作为'Results'返回的能力。但是,当然,现在看起来很明显。再次感谢! – solidcell