我有两个类的RealmData.swift:
import UIKit
import RealmSwift
class Task : Object {
dynamic var taskName = ""
dynamic var taskStatus = ""
}
class TaskList : Object {
dynamic var listName = ""
let tasks = List<Task>()
}
现在,我正在尝试为Realm实现演示填充,以便稍后在我的UITableViewController中显示它:
import UIKit
import RealmSwift
class ListsTableViewController: UITableViewController, ListCellDelegate, UITextFieldDelegate {
// (...)
override func viewDidLoad() {
// (...)
let list_0 = TaskList(value: ["Things for vaction", [["Cash & Cards", false], ["Clothes", false], ["Passport", false] ] ])
let realm = try! Realm()
realm.write {
realm.add(list_0)
}
}
}
根据设计,此代码应创建一个名称为“度假之物”的列表,其中包含3个任务,名称为“现金和卡”,“衣服”和“护照”,以及错误的taskStatus'es。当我添加“ let list_0 =(...)”行并运行时,应用程序从“线程1:信号SIGABRT”异常开始崩溃。我是拼错了什么,还是可能需要先创建Task对象?但是https://realm.io/docs/swift/latest/具有相同的示例:
let aPerson = Person(value: ["Jane", 30, [["Buster", 5], ["Buddy", 6]]])
请解释一下,这是怎么了?我对Current Limitations没问题(https://realm.io/docs/swift/latest/#current-limitations)
提前致谢!
它与属性的类型不匹配。
您将数组对象传递Task
为["Cash & Cards", false]
。数组包含String
和Bool
值。否则,您对的模型定义Task
仅具有String
属性。因此,后一个值不匹配,传递该boolean
值,但模型需要该String
值。
因此解决方案是:使模型包含String
和Bool
属性。像下面
class Task : Object {
dynamic var taskName = ""
dynamic var taskStatus = false
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句