【问题标题】:Old code gives "Unused parameter" error but never has before now旧代码给出“未使用的参数”错误,但以前从未出现过
【发布时间】:2012-04-18 10:44:35
【问题描述】:

我打开了一些旧的 iOS 代码,当我尝试构建它时,我收到如下代码的“未使用参数”错误:

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar {
    NSLog(@"Search Bar isn't used in this function");
}

这是我第一次看到 Objective-C 编译器为此吐出错误(不是警告)。由于很多 iOS 调用不一定使用传递参数(例如很多回调),我需要帮助来摆脱这个。

【问题讨论】:

    标签: objective-c xcode4 parameters compiler-errors


    【解决方案1】:

    解决方案 #1)

    在您的 Xcode 项目的“构建设置”中,有一个用于“未使用参数”的参数。

    将其从 YES 重置为 NO

    解决方案 #2(Xcode 4 可用):

    在 Xcode 4.3.2 或更高版本中使用__unused

    (THANKS to Tim Bodeit's comment below)

    解决方案#3)

    #pragma unused (searchBar) 放入您的代码中,最好是在您的实现中声明函数的行下方。

    I.E.

    - (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar {
        #pragma unused (searchBar)
        NSLog(@"Search Bar isn't used in this function");
    }
    

    【讨论】:

    • 嗨,Michael,未使用参数警告的 XCode 设置已经显示为“NO”。我真的希望不必到处注入代码。我可以查看其他一些编译器(或其他)设置吗?
    • 您的目标(不仅仅是项目)的“已解决”列下的设置是否显示为“否”?另外,您是否在项目或目标设置中将“将警告视为错误”设置为是?
    • 在项目和目标的每一列中都列为“否”。将警告视为错误也都设置为“否”。
    • hmmmmmmmmmmmmm... 您可能需要编辑您的问题以包含您看到的一些错误的构建日志输出。我的想法已经用完了。
    • 所以我通过删除 -Werror 和 -Wextra 消除了错误。第一个标签使警告变成错误。我现在不喜欢关闭它,但我被困住了。将接受您的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 2018-03-04
    • 2018-11-22
    • 1970-01-01
    • 2016-07-11
    相关资源
    最近更新 更多