【问题标题】:Realm Cleaning Up Old Objects清理旧对象的领域
【发布时间】:2015-11-10 22:54:44
【问题描述】:

我刚刚开始在我的 iOS 应用程序中使用 Realm 进行缓存。该应用程序是一个商店,有商品。当用户浏览商品时,我将商品添加到数据库中。但是,由于这些项目不会永远保持可用,因此将它们保留在数据库中的某个时间点(例如 24 小时)是没有意义的。有没有一种首选方法可以在一段时间后批量过期对象?还是最好在每次应用启动时添加日期属性并查询这些对象?

【问题讨论】:

    标签: ios realm


    【解决方案1】:

    Realm 本身没有默认的缓存过期机制,但就像你说的,为每个对象添加一个NSDate 属性,并简单地执行查询以检查日期属性早于 24 的对象是一件相对简单的事情在您的应用程序中定期运行几个小时。

    这两种语言的逻辑可能看起来像这样:

    Objective-C

    NSDate *yesterday = [[NSDate alloc] initWithTimeIntervalSinceNow:-(24 * 60 *60)];
    RLMResults *itemsToDelete = [ItemObject objectsWhere:"addedDate < %@", yesterday];
    [[RLMRealm defaultRealm] deleteObjects:itemsToDelete];
    

    斯威夫特

    let yesterday = NSDate(timeIntervalSinceNow:-(24*60*60))
    let itemsToDelete = Realm().objects(ItemObject).filter("addedDate < \(yesterday)")
    Realm().delete(itemsToDelete)
    

    希望对你有所帮助!

    【讨论】:

    • 安卓有没有类似的方法可以实现这个?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 2022-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多