【发布时间】:2017-07-08 15:10:42
【问题描述】:
我正在尝试创建一个MutableProperty,其中包含从Realm.objects(_:) 收到的Results。
要创建属性,我需要给它一个初始值;因此“空”Results。
我尝试使用以下方法创建一个:
var someThings = Results<SomeObject>()
MutableProperty(someThings)
但是编译器给了我错误:Cannot invoke initializer for type 'Results<SomeObject>' with no arguments。
虽然我理解该错误,但我不确定如何在此上下文中创建 Results 对象。
查看Results 的来源,我也找不到init。
所以我的问题是;如何自己创建一个Results 以在MutableProperty 中使用?
编辑:
我见过this question...但这并没有真正的帮助(除非我要为 MutableProperty 或其他东西创建一个“包装器”)。
【问题讨论】:
-
你可以创建一个永远为假的条件
-
我不明白你的意思,你能详细说明一下吗?
-
我的意思是,获得
Results的唯一方法是从realm获得一个,请参阅here,如果你想获得一个空的,我想你会使用不可能的条件,例如NSPredicate(format: "color IS NULL AND color IS NOT NULL");或类似的东西。 -
所以基本上你说的是“空”结果集只能通过从领域获取对象然后使用返回 0 个对象的过滤器过滤获取的对象来创建?这看起来……丑陋,但我会试试看。
-
因为 Realm 结果被延迟访问,例如
Results和FALSEPREDICATE永远不会从磁盘加载任何数据。例如realm.objects(SomeObject.self).filter("FALSEPREDICATE")