我正在完成检查清单上的一些项目。我正在使用以下方法计算已完成的项目:
- (NSUInteger)completedCount {
return [DIDTask MR_countOfEntitiesWithPredicate:[NSPredicate predicateWithFormat:@"completed == YES && list == %@", self]];
}
我遇到的问题是,当我在列表上调用该方法时 - list.completedCount - 在保存数据后立即它不会给我正确的计数而是值 - 1。仅在应用程序更改屏幕之后或显示一个弹出窗口(如下所示),然后 list.completedCount 给我正确的值。但这对我来说为时已晚。
[UIAlertView showAlertViewWithTitle:@"Are you OK?" message:task.name cancelButtonTitle:@"Stop" otherButtonTitles:@[@"Yes", @"No"] handler:^(UIAlertView *alertView, NSInteger buttonIndex) {
if (buttonIndex > 0) {
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
[[task MR_inContext:localContext] setCompletedValue:buttonIndex == 1];
} completion:^(BOOL success, NSError *error) {
}];
[self continueAutomaticModeWithList:list taskIndex:index + 1];
}
}];
我的问题是如何在保存数据后立即更新或刷新应用程序,以便 list.completedCount 立即为我提供正确的计数?