class Post: RLMObject {
var images: RLMArray!
override init(JSON:json) {
if let imagesArray = dictionary["images"].arrayObject {
let imagesItems = RLMArray(objectClassName: StringObject.className())
for dic in imagesArray {
let image = StringObject(stringValue: dic as! String)
imagesItems.addObject(image)
}
images = imagesItems
}
}
}
Run Code Online (Sandbox Code Playgroud)
上面我尝试初始化的代码PostModel包括images属性,但是它始终在我的项目中崩溃:
RLMArray对象类型不支持'(null)'。RLMArrays只能包含RLMObject子类的实例
我在Realm Swift的文档中看到了用于List<Foo>声明数组属性的方法,但是我不知道该如何做。
在Swift中使用Realm的Objective-C API时,应使用默认值声明数组属性,该默认值是RLMArray具有适当对象类名称的实例。例如:
class Post: RLMObject {
dynamic var images = RLMArray(objectClassName: StringObject.className())
// …
}
Run Code Online (Sandbox Code Playgroud)
还要注意dynamic修饰符的存在。这是确保将属性的访问动态分派到RLMObject创建的属性的getter和setter所必需的。
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |