【问题标题】:How to disable Assigning to..from incompatible type warning?如何禁用分配给..from不兼容的类型警告?
【发布时间】:2016-10-24 16:30:17
【问题描述】:

我在 Xcode 中有一个警告Assigning to ... from in compatible type。当我在没有 UITableViewDelegate 协议的情况下将 tableView 的委托设置为 UIViewController 时出现。

这个警告很烦人,我想禁用它。但是我找不到如何做到这一点。只有this 的帖子显示了类似的内容。

  • 如何禁用此警告?
  • 有什么方法可以了解如何禁用不同类型的警告?如果有另一个警告,我想禁用它。

【问题讨论】:

  • 是什么阻止你使视图控制器符合UITableViewDelegate?听起来我们正面临 XY 问题。
  • 您的ViewController 是否与.h 文件中的UITableViewDelegate 协议确认?
  • 没有按照正确协议执行的委托似乎毫无意义。
  • 我有一个 UIViewController 超类,它带有为子控制器实现 tableView 初始化的方法。这个方法可以调用也可以不调用。由于不接受有关未实现 tableViewDelegate 方法的警告。
  • 您链接到的问题中的解决方案有什么问题,即插入演员(id<UITableViewDelegate>)

标签: ios objective-c xcode gcc


【解决方案1】:

所以有几个爱哭鬼的一些反对意见,但这个问题的答案在某些情况下可能很有用。也许不是在这种情况下,而是在类似的情况下。

我终于找到了answer,这似乎是现在(2016 年底)实现协议而不是使用的唯一方法

#pragma GCC diagnostic ignored "-Wprotocol"

【讨论】:

    【解决方案2】:

    当您的 ViewController 未与 .h 文件中的 UITableViewDelegate 协议确认时,会出现此警告。

    解决这个问题:

    ViewController.h:

    #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController <UITableViewDelegate>
    
    @property NSString *myString;
    
    @end
    

    希望这会有所帮助。

    【讨论】:

    • 我知道这一点。这不是问题的答案。
    猜你喜欢
    • 2023-03-07
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多