MagicalRecord 访问添加的最旧元素
MagicalRecord access oldest element added
我正在我的应用程序中使用神奇的库 MagicalRecord。
我需要为应用程序中的某些数据创建“磁盘缓存”。为了限制此 缓存 的大小,我不想最多只有 100 个该类型数据的实例。
我遇到的一个简单的解决方案是每次添加新元素时,检查数字是否大于 100。如果是,它应该删除 oldest 添加元素.
ModelData *model = [ModelData MR_createEntity];
model.key = modelDataKey;
model.value = value;
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreWithCompletion:^(BOOL contextDidSave, NSError *error) {
NSUInteger count = [ModelData MR_countOfEntities];
if (count > 100) {
//remove last element added
}
}];
我知道我可以为我的模型添加属性日期并按顺序进行搜索,但我更喜欢更好的解决方案(如果存在)。
这个问题有什么提示吗?
提前致谢。
是的,解决方案是将创建的时间戳作为属性包含在内。我不会担心存储或性能,这是一个干净且轻量级的解决方案。
您可以通过覆盖 awakeFromInsert
自动轻松地添加日期。
我正在我的应用程序中使用神奇的库 MagicalRecord。
我需要为应用程序中的某些数据创建“磁盘缓存”。为了限制此 缓存 的大小,我不想最多只有 100 个该类型数据的实例。
我遇到的一个简单的解决方案是每次添加新元素时,检查数字是否大于 100。如果是,它应该删除 oldest 添加元素.
ModelData *model = [ModelData MR_createEntity];
model.key = modelDataKey;
model.value = value;
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreWithCompletion:^(BOOL contextDidSave, NSError *error) {
NSUInteger count = [ModelData MR_countOfEntities];
if (count > 100) {
//remove last element added
}
}];
我知道我可以为我的模型添加属性日期并按顺序进行搜索,但我更喜欢更好的解决方案(如果存在)。
这个问题有什么提示吗?
提前致谢。
是的,解决方案是将创建的时间戳作为属性包含在内。我不会担心存储或性能,这是一个干净且轻量级的解决方案。
您可以通过覆盖 awakeFromInsert
自动轻松地添加日期。