我有一个运行良好的应用程序。该应用程序是汽车列表。用户可以添加,删除和编辑汽车。我试图集成RealmSwift
来存储数据,但遇到了麻烦。到目前为止,用于操作该应用程序的数据存储在Cars
类的静态var中:
struct CarData {
var name: String
var year: String
}
class Cars {
static var list = [
CarData(name: "Toyota Corolla", year: "2007"),
CarData(name: "BMW 3", year: "2011")
]
static var index = -1
static var newCar = false
}
我需要2个视图控制器中的领域:
ListViewController
-填充tableView
。像这样:Cars.list = realmListOfCars
,其余代码将保持不变。
2)ConfirmViewController
-更改存储的数据。
if toProceed {
if Cars.newCar {
Cars.list.append(carToEdit!) //add new car
} else {
Cars.list[Cars.index] = carToEdit! //edit car
}
} else {
if Cars.newCar == false {
Cars.list.remove(at: Cars.index) //delete car
}
}
//the idea is to add something like:
realmListOfCars = Cars.list
因此,想法是,一旦加载Cars.list
就等于realmListOfCars
,一旦发生更改,就使realmListOfCars
等于Cars.List
。
听起来很简单,但是创建和访问realmListOfCars
时我完全陷入困惑。
求助!
附言RealmSwift已安装
答案 0 :(得分:1)
如果要在Realm中存储数据,则需要使对象成为Realm对象。首先,需要更改汽车类
monaco.editor.create(<your container DOM element here>, {
. . . .
suggest: {
showKeywords: false,
}
});
然后您要管理的每个属性都需要更新
class Cars: Object {
例如。您还希望使用“领域列表”对象作为Car Data的属性来存储汽车(CarData必须是一个类,而不是结构)
@objc dynamic var newCar = false
然后,当您将汽车添加到Cars类的carList属性时,它也将作为对象写入Realm。
这是您的Realm对象
let carList = List<CarData>()
假设您的Cars对象是迈凯轮的全部对象,我们将其称为allMcLarens。这是在该列表中添加汽车
class CarData: Object {
@objc dynamic var name = ""
@objc dynamic var year = ""
}
class Cars: Object {
let carList = List<CarData>()
@objc dynamic var index = -1
@objc dynamic var newCar = false
}
Realm Getting Started指南中也涵盖了很多内容。