Ios 领域:请说明如何正确创建对象
我有RealmData.swift和两个类:Ios 领域:请说明如何正确创建对象,ios,swift,swift2,realm,Ios,Swift,Swift2,Realm,我有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>() } 此代码应按设计创建一个名为“
import UIKit
import RealmSwift
class Task : Object {
dynamic var taskName = ""
dynamic var taskStatus = ""
}
class TaskList : Object {
dynamic var listName = ""
let tasks = List<Task>()
}
此代码应按设计创建一个名为“度假物品”的列表,其中包含3个名为“现金和卡”、“衣服”和“护照”的任务,以及假任务状态。
当我添加“let list_0=(…)”行并运行时,应用程序在开始时崩溃,出现“Thread 1:SIGABRT”异常。我是拼错了什么东西,还是需要先创建任务对象?但有同样的例子:
let aPerson = Person(value: ["Jane", 30, [["Buster", 5], ["Buddy", 6]]])
请解释一下,这是怎么回事?
我同意目前的限制()
提前谢谢 它与属性的类型不匹配 您将
任务的数组对象作为[“现金和卡”,false]
传递。数组包含String
和Bool
值。否则,Task
的模型定义只有String
属性。因此后一个值不匹配,传递布尔值
但模型需要字符串
值
因此,解决方案是:使您的模型包含String
和Bool
属性。如下
class Task : Object {
dynamic var taskName = ""
dynamic var taskStatus = false
}
谢谢你,现在我明白了,我的问题真的很愚蠢:但它仍然在let realm=try上失败!Realm()。请确定发生了什么错误?将代码重写为do{let realm=try realm()}catch let error{print(error)}
以查看错误。do{let realm=try realm();realm.write{realm.add(list_0)}catch let error{print(error)}
运行时完全没有错误。是的,真的很奇怪。仔细检查:let realm=try!Realm()
失败,建议的do{}catch{}运行平稳。真奇怪。数据是否实际写入磁盘?如果您的代码更改为let realm=try?Realm()
打印(Realm)
,它在控制台中显示什么?
class Task : Object {
dynamic var taskName = ""
dynamic var taskStatus = false
}