领域整合

时间:2020-09-20 06:40:30

标签: ios swift xcode realm

我有一个运行良好的应用程序。该应用程序是汽车列表。用户可以添加,删除和编辑汽车。我试图集成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个视图控制器中的领域:

  1. 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已安装

1 个答案:

答案 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指南中也涵盖了很多内容。