领域:请说明如何正确创建对象

友邦保险

我有两个类的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]数组包含StringBool值。否则,您对的模型定义Task仅具有String属性。因此,后一个值不匹配,传递该boolean值,但模型需要该String值。

因此解决方案是:使模型包含StringBool属性。像下面

class Task : Object {
    dynamic var taskName = ""
    dynamic var taskStatus = false
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章