【问题标题】:Conflicting return type in implementation of 'tableview:canEditRowAtIndexPath:''tableview:canEditRowAtIndexPath:' 实现中的返回类型冲突
【发布时间】:2017-05-29 12:24:22
【问题描述】:

我刚刚注意到这个警告:

实现中的返回类型冲突 'tableview:canEditRowAtIndexPath:': 'BOOL' (aka 'signed char') vs '布尔'

这就是我实现这个方法的样子:

-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{

    NSInteger row = indexPath.row;

    if (row >= 0 && row < messages.count){

        Message *message = [messages objectAtIndex:row];

        if (message){
            if ([message getSeen]){
                return YES;
            }
        }
    }

    return NO;
}

这就是它在 UITableView.h 中的声明的样子:

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath;

这个警告的原因是什么?

【问题讨论】:

    标签: ios objective-c uitableview


    【解决方案1】:

    那不应该发生。检查代码中某处是否存在用于 BOOL 的 typedef 或 #define。双击代码中的 BOOL,右键单击并“显示定义”。

    【讨论】:

    • 实际上,它是一个有缺陷的 Xcode。起初,我确实分析了(产品 -> 分析)并且出现了该警告。在每次下一次构建之后,警告仍然存在。但是当我清理并重新构建应用程序时,警告消失了。幸运的是......因为这将是一个严重的错误:)
    猜你喜欢
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 2021-10-23
    • 2018-03-11
    • 1970-01-01
    相关资源
    最近更新 更多