Swift 如何实例化领域结果<;T>;排列
Realm Swift文档说查询Swift 如何实例化领域结果<;T>;排列,swift,realm,Swift,Realm,Realm Swift文档说查询结果对象会返回一个数组,但是,当我尝试实例化这样的结果数组时:var allObjects:Results=[],我得到一个错误,说我不能将结果与数组文本一起使用 我知道realmapi参考说明“结果实例不能直接实例化”;”但我想知道是否有某种解决方法 我想知道,因为我想要一个全局变量,它是用一个空数组实例化的,并且在UIViewController类的viewWillAspect方法中进行了变异。例如: var allItems : Results<Ite
结果
对象会返回一个数组,但是,当我尝试实例化这样的结果数组时:var allObjects:Results=[]
,我得到一个错误,说我不能将结果与数组文本一起使用
我知道realmapi参考说明“结果实例不能直接实例化”;”但我想知道是否有某种解决方法
我想知道,因为我想要一个全局变量,它是用一个空数组实例化的,并且在UIViewController类的viewWillAspect
方法中进行了变异。例如:
var allItems : Results<Item> = []
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let realm = try! Realm()
self.allItems = realm.objects(Item.self).sorted(byKeyPath: "description")
}
var allItems:Results=[]
覆盖函数视图将出现(uo动画:Bool){
超级。视图将显示(动画)
让realm=try!realm()
self.allItems=realm.objects(Item.self).sorted(按键路径:“description”)
}
AResults
generic不是数组。它是可枚举和可下标的,但不是CollectionType
在这种情况下,是否将
allItems
作为可选项,然后展开?结果是Realm提供的一种类型。虽然从外部看,它的行为类似于一个数组,但实际上它是一个抽象,包含了Realm的延迟加载机制,而该机制不向终端应用程序公开。因此,第三方应用程序无法创建结果的新实例
如果您只想保留由领域查询创建的Results
的实例,可以将其设置为可选的,而不是尝试先发制人地实例化它
var allItems: Results<Item>?
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let realm = try! Realm()
self.allItems = realm.objects(Item.self).sorted(byKeyPath: "description")
}
var allItems:结果?
覆盖函数视图将出现(uo动画:Bool){
超级。视图将显示(动画)
让realm=try!realm()
self.allItems=realm.objects(Item.self).sorted(按键路径:“description”)
}
您能分享一下您希望这样做的用例吗?文档非常清楚。@d我已经更新了我的答案。谢谢你的输入。有什么方法可以实例化一个Results对象吗?