领域:请展示如何正确创建对象
Realm: please show how to properly create objects
我有 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)
}
}
}
此代码应按设计创建名称为 "Things for vacation" 的列表,其中包含名称为 "Cash & Cards"、"Clothes" 和 "Passport" 的 3 个任务以及错误的任务状态。
当我添加 "let list_0 = (...)" 行和 运行 时,应用程序崩溃并出现 "Thread 1: signal SIGABRT" 异常。我是不是拼错了什么,或者可能需要先创建 Task 对象?但是 https://realm.io/docs/swift/latest/ 有相同的例子:
let aPerson = Person(value: ["Jane", 30, [["Buster", 5], ["Buddy", 6]]])
求解释,这是怎么回事?
我对当前限制很好 (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
}
我有 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)
}
}
}
此代码应按设计创建名称为 "Things for vacation" 的列表,其中包含名称为 "Cash & Cards"、"Clothes" 和 "Passport" 的 3 个任务以及错误的任务状态。 当我添加 "let list_0 = (...)" 行和 运行 时,应用程序崩溃并出现 "Thread 1: signal SIGABRT" 异常。我是不是拼错了什么,或者可能需要先创建 Task 对象?但是 https://realm.io/docs/swift/latest/ 有相同的例子:
let aPerson = Person(value: ["Jane", 30, [["Buster", 5], ["Buddy", 6]]])
求解释,这是怎么回事? 我对当前限制很好 (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
}