清理旧对象的境界

我刚开始在我的iOS应用程序中使用Realm进行caching。 该应用程序是一个商店,商品。 当用户浏览商品时,我将这些项目添加到数据库中。 但是,由于这些项目不能永久保留,所以将它们保存在数据库中是没有意义的,比如24小时。 是否有一个首选的方式来批量过期一段时间后的对象? 或者最好是添加date属性,并在每个应用程序启动时查询这些对象?

Realm本身并没有默认的caching过期机制,但正如你所说的那样,为每个对象添加一个NSDate属性是一个相对简单的事情,并且简单地执行一个查询来检查date属性周期早于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) 

我希望有帮助!