使用 MagicalRecord 截断所有应用程序关闭后不保存
Posted
技术标签:
【中文标题】使用 MagicalRecord 截断所有应用程序关闭后不保存【英文标题】:Truncate all with MagicalRecord not saving after app closes 【发布时间】:2014-08-20 08:26:00 【问题描述】:我正在使用 Magical Record,我想做的是当用户进入多项目选择器表视图时,他可以选中和取消选中许多项目,当按下完成时,这些项目被保存。
当我使用该应用程序时没有问题,但是当我离开并返回时,之前检查过的所有项目和新项目都会被检查(假设我在启动时检查了 5 个项目,然后我去回到多项目选择器,取消选中它们并检查其他 5 个,当我离开应用程序后返回多项目选择器时,将检查 10 个。
这是我按下选择器的“完成”按钮时的代码:
-(void)selector:(KNMultiItemSelector *)selector didFinishSelectionWithItems:(NSArray *)selectedItems
[self dismissViewControllerAnimated:YES completion:^
currentFriends = selectedItems;
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext)
[FriendsSelected MR_truncateAll];
for (KNSelectorItem * user in selectedItems)
FriendsSelected *friend = [FriendsSelected MR_createEntityInContext:localContext];
friend.friendID = user.selectValue;
friend.friendName = user.displayValue;
NSLog(@"Friend %@ Saved", friend.friendName);
];
];
我尝试在应用程序终止时保存,我尝试使用完成和后台任务,没有任何接缝可以工作。也许我错过了什么?
PS:我尝试了this other answer,但它不起作用,并且在我使用的版本中不推荐使用 MR_save。
【问题讨论】:
【参考方案1】:使用MR_truncateAllInContext:
确保使用您使用saveWithBlock:
启动的实际保存操作所使用的上下文删除您的数据
【讨论】:
以上是关于使用 MagicalRecord 截断所有应用程序关闭后不保存的主要内容,如果未能解决你的问题,请参考以下文章
*** 尝试截断时 +[NSManagedObjectContext MR_defaultContext] 中的断言失败
导入时保存所有内容之前的 MagicalRecord 完成块