我正在使用魔法记录,我想要做的是当用户输入多项目选择器表格视图时,他可以检查并取消选中许多项目,这些项目在完成后会被保存。
当我使用应用程序时没有问题,但是当我离开和返回时,检查之前检查过的所有项目和新项目都会被检查(让我们说我检查过了)启动时有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。
答案 0 :(得分:4)
使用MR_truncateAllInContext:
确保使用您使用saveWithBlock: