swift - 如何使用 Realm (Swift) 在对象中添加和更新值?
问题描述
我在下面给出了两个课程。我想对这些对象执行(添加、更新和删除)之类的操作。
CheckOutImageList类是一个包含图像的对象数组,而CheckOutDetail类是一个包含图像对象的对象。
class CheckOutImageList: Object {
@objc dynamic var imageUrl = ""
@objc dynamic var imageName = "test"
@objc dynamic var isProfile = Bool()
@objc dynamic var imageDesc = ""
override static func primaryKey() -> String? {
return "imageName"
}
}
class CheckOutDetail: Object {
@objc dynamic var taskId = 0
var imageList = List<CheckOutImageList>()
@objc dynamic var remarks = ""
@objc dynamic var isFollowUp = Bool()
@objc dynamic var followDate = ""
@objc dynamic var followTime = ""
override static func primaryKey() -> String? {
return "taskId"
}
}
我可以对CheckOutDetail类执行添加和更新操作,但需要帮助才能在图像列表数组中添加、更新和删除。
解决方案
为了解决这个问题,我对我的对象进行了一些更改。我所做的只是为CheckOutDetails和CheckOutImageList创建了两个单独的对象,如下所示:
class CheckOutImageList: Object {
@objc dynamic var taskId = 0
@objc dynamic var imageUrl = ""
@objc dynamic var imageName = ""
@objc dynamic var isProfile = Bool()
@objc dynamic var imageDesc = ""
override static func primaryKey() -> String? {
return "imageName"
}
}
class CheckOutDetail: Object {
@objc dynamic var taskId = 0
@objc dynamic var remarks = ""
@objc dynamic var isFollowUp = Bool()
@objc dynamic var followDate = ""
@objc dynamic var followTime = ""
override static func primaryKey() -> String? {
return "taskId"
}
}
//Code to update old data or add new image data in the CheckOutImageList Object
if self.checkImageNameExist(imageName: imgDetail.fileName) {
try! realm.write {
realm.add(obj, update: true) //obj is of type CheckOutImageList
}
} else {
try! realm.write {
realm.add(obj)
}
}
//Function will return true if primary key already exist else return false
func checkImageNameExist(imageName: String) -> Bool {
return realm.object(ofType: CheckOutImageList.self, forPrimaryKey: imageName) != nil
}
并使用CheckOutDetails中的 taskId作为外键来获取相同 id 的详细信息。
推荐阅读
- javascript - javascript中有什么方法可以按名称调用多个函数并以数组格式获取它们的结果?
- javascript - 每 250 毫秒发出一次值,类似于 debouceTime() 但没有延迟
- javascript - 如何在 javascript 中使用 log4javascript 登录到文件
- c# - 如何将 Azure DocumentDB Document 类转换为我的 POCO 类?
- slack-api - 从 Slack 请求消息范围
- spring - 迄今为止的spring boot 2.0 + thymeleaf unix epoch
- javascript - 如何在wordpress中设置自定义页面url
- robotframework - 在 Mac Safari 浏览器上执行 Robotscripts 很奇怪
- php - 根据首字母显示“名字”数据
- vba - Excel 宏根据单元格值验证 2 列