我正在使用CloudKit(https://github.com/caiyue1993/IceCream)处理Realm同步库。
我尝试做的是通过List<SpecificObject>
访问parentObject["propertyName"]
的域对象属性。
由于我无法直接引用SpecificObject
类型,因此我尝试将其转换为List<Object>
,如下所示:
parentObject["propertyName"] as? List<Object>
但这会产生nil
。
投射到AnyRealmCollection<Object>
的结果相同。
它成功投射到ListBase
,这是List<T>
的超类,但这没用。
关于我可能做错的任何想法,或者我应该将其作为问题提交给RealmCocoa回购?
答案 0 :(得分:1)
由于Swift中的泛型类型是不变的,List<Object>
和List<ObjectSubclass>
是两个完全不相关的类型。因此,代码中的失败演员阵容。
在不知道List
中存储的确切类型的情况下,由于它们不变,因此无法将List<ObjectSubclass>
转换为List<Object>
类型