[ios]枚举值 'NSFetchedResultsChangeMove',NSFetchedResultsChangeUpdate' 不处理在开关

发布时间: 2017/3/27 20:18:59
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我得到此警告︰ 枚举值 'NSFetchedResultsChangeMove',NSFetchedResultsChangeUpdate' 不处理在开关

有什么想法?

- (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id <NSFetchedResultsSectionInfo>)sectionInfo atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type {
    switch(type) {
        case NSFetchedResultsChangeInsert:
            [self.tableView insertSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade];
            break;

        case NSFetchedResultsChangeDelete:
            [self.tableView deleteSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade];
            break;
    }
}

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
    [self.tableView endUpdates];
}

在此先感谢

解决方法 1:

编译器知道 NSFetchedResultsChangeType 有四个可能的值,但您的代码只能处理其中两个。 如果你确实知道其他两个不会发生,你可以忽略此警告。 但它将是最安全的包括一些代码来处理这些其他值,没有什么或 NSLog,看看是否真的发生。 我会添加

case NSFetchedResultsChangeMove:
    NSLog(@"A table item was moved");
    break;
case NSFetchedResultsChangeUpdate:
    NSLog(@"A table item was updated");
    break;

进入你的 switch 语句。 编辑︰ 检查文档,这两个值不用于部分修改,而作的所以您可以忽略该警告或添加空的 case 语句,沿着上面的行来禁止显示警告见

官方微信
官方QQ群
31647020