首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >清除旧对象的领域

清除旧对象的领域
EN

Stack Overflow用户
提问于 2015-11-10 22:54:44
回答 1查看 2.3K关注 0票数 7

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-11 04:17:17

领域本身没有默认的缓存过期机制,但就像您所说的,向每个对象添加一个NSDate属性,只需在应用程序中执行一个查询,以检查其日期属性在24小时以上的对象,这是一个相对微不足道的问题。

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

目标-C

代码语言:javascript
运行
复制
NSDate *yesterday = [[NSDate alloc] initWithTimeIntervalSinceNow:-(24 * 60 *60)];
RLMResults *itemsToDelete = [ItemObject objectsWhere:"addedDate < %@", yesterday];
[[RLMRealm defaultRealm] deleteObjects:itemsToDelete];

Swift

代码语言:javascript
运行
复制
let yesterday = NSDate(timeIntervalSinceNow:-(24*60*60))
let itemsToDelete = Realm().objects(ItemObject).filter("addedDate < \(yesterday)")
Realm().delete(itemsToDelete)

我希望这能帮上忙!

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33641221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档