swift - 如何使用 Realm 更新/删除索引处的对象?

标签 swift realm

今天我发现了Realm,但我对它并不熟悉。请帮忙。

我有两门课:

class EventDetail: Object {
dynamic var start_time : Int = 0
dynamic var end_time   : Int = 0
convenience init(start_time: Int, end_time: Int ) {
    self.init()
    self.start_time  = start_time
    self.end_time    = end_time
}
class Channel : Object {
  dynamic var id  : Int = 0
  convenience init ( id : Int) {
       self.id = id
  }
  let details = List<EventDetail>()
}

我像这样填充数据库:

let  realm = try! Realm()
var newChannel = Channel (id : id)
let detailEvent1 = EventDetail(start_time:10, end_time:  20)                              
let detailEvent2 = EventDetail(start_time:20,end_time: 30)
newChannel.details.append(detailEvent1)
newChannel.details.append(detailEvent2)

try! realm.write {
     realm.add(newChannel)
} 

问题是:如何删除/更新特定索引处的详细信息?

例如:从索引= 100的 channel 获取detailEvent2

最佳答案

您需要对要更改或删除的对象类型执行提取。

基本操作是

realm.objects(Channel.self)

要找出要更改或删除的对象,您可以使用简单的高阶函数来过滤结果,例如谓词:

let lateStarters = realm.objects(Channel.self).filter(NSPredicate(format: "start_time > 10", argumentArray nil))

并通过枚举结果数组来更改它们的属性:

try? realm.write({
    for channel in lateStarters {
        channel.start_time = 100
    }
})

关于swift - 如何使用 Realm 更新/删除索引处的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39922144/

相关文章:

swift - 使用 CoreData 在 SwiftUI 中填充列表

swift - 将对象添加到 RLMArray

android - 原语 Realm 列表的 Gson 反序列化

ios - 全局初始化 Realm 导致崩溃

javascript - Realm-js 抛出异常

timer - SWIFT - 多个 NSTimer

ios - 从 swift 代码访问 UITabBarController

ios - 使用 Parse 类数据填充表格 View 单元格

objective-c - 将 Obj C 项目转换为 Swift 时访问类的函数时出错

java - 将 Realm 添加到 Android 应用程序时出现 StackOverflowError