领土清理旧物体

Bra*_*ker 6 realm ios

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

TiM*_*TiM 11

Realm本身没有默认的缓存过期机制,但是就像你说的那样,NSDate向每个对象添加一个属性是一件相对简单的事情,只需执行查询就可以在应用程序内定期检查日期属性超过24小时的对象.

在两种语言中,逻辑可能看起来像这样:

Objective-C的

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

迅速

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

我希望有所帮助!

  • Android 有没有类似的方法来实现这一点? (2认同)