【问题标题】:Sending Class to Parameter of Incompatible Type 'id<UIWebViewDelegate>' Warning?向不兼容类型“id<UIWebViewDelegate>”的参数发送类警告?
【发布时间】:2011-10-12 20:01:58
【问题描述】:

当我写这行代码时,我没想到我的程序会大惊小怪:

[twitterFeed setDelegate:self];

twitterFeed 是一个 UIWebView 设置去 Twitter 的移动网站,但这不是重点。我收到错误“将 'SocialView (该类的名称)发送到不兼容类型 'id' 的参数。我不知道如何解决它。有什么方法可以快速且无需过多地重构我的代码?

此外,值得注意的是,SocialView 是一个 UIViewController,如果这对您来说很重要的话。

【问题讨论】:

    标签: ios objective-c iphone delegates


    【解决方案1】:

    您可以将&lt;UIWebViewDelegate&gt; 放入您的SocialView 接口声明中,看看是否可以修复警告:

    @interface SocialView : UIViewController <UIWebViewDelegate> {
    ...
    }
    

    【讨论】:

      【解决方案2】:

      如果您使用的是静态方法(带有 +),您可以通过强制转换手动获取警告:

      [twitterFeed setDelegate:(id<UIWebViewDelegate>)self];
      

      如果您在实例方法中(带有 - ),则应遵循 chown 解决方案。

      【讨论】:

        【解决方案3】:

        您可能想了解如何使用委托。 How does a delegate work in objective-C? 确保您在使用它们时知道自己在做什么。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-10-07
          • 1970-01-01
          • 2012-09-12
          • 1970-01-01
          相关资源
          最近更新 更多