0

アクティビティのリストのいくつかのタスクを表示しています。これを実現するために、NSPredicate predicateWithFormat: を使用してリストの項目を選択しています。しかし、私が抱えている問題は、そのリストの以前に削除されたタスクに関するものです。それらは表示されていませんが(または無効として表示されていると言うべきです)、それでもカウントされます。

私の質問は次のとおりです。まだリストの一部であるアイテム (タスク) のみを選択するにはどうすればよいですか? 削除されたデータはそのままにしておく必要があります。実際には完全に削除する必要があります。

私のコードの一部 (Martin のコメントに従って更新したところです):

- (void)continueAutomaticModeWithList:(DIDList *)list taskIndex:(NSInteger)index {
if (index == list.tasks.count) return;
DIDTask *task = [DIDTask MR_findFirstWithPredicate:[NSPredicate predicateWithFormat:@"list == %@ && index == %@", list, @(index)]];

if (task.completedValue) {
    [self continueAutomaticModeWithList:list taskIndex:index + 1];
    return;
}

[UIAlertView showAlertViewWithTitle:@"Task" message:task.name cancelButtonTitle:@"Stop" otherButtonTitles:@[@"Click to go to next action", @"Click to go to next action and notify user"] 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.tableView reloadData];
        }];
        [self continueAutomaticModeWithList:list taskIndex:index  1];
    }
}];

}

4

1 に答える 1