将 uiviewcontroller strong 发送到不兼容类型 id 的参数的警告

Warning for sending uiviewcontroller strong to parameter of incompatible type id

我已经像这样设置了委托,但收到了警告。如果我放置 WSHelperDelegate,它将静音。但是,在这种情况下,我需要使用像 UIVIewController 这样的一般情况,而不是告诉特定的视图控制器。我怎样才能消除这个警告?

确保控制器符合您正在使用的委托:

例如:

@interface yourController : UIViewController <WSHelperDelegate> 
//or <WSHelperProtocol>, whatever it is named.

或者您可以通过以下方式消除警告:

....andDelegate:(id)vc];

这里有几个选项可以解决这个问题:

1.

+ (void)request... {

    // ...
    [[NSHelper sharedInstance] getDetailDataWithEntity:[NSString stringWithFormat:@"%@%@", url, articleID] andView:vc.view andDelegate:(UIViewController<WSHelperDelegate> *)vc];

}

2.

+ (void)requestEditDataWithArticleId:(NSString *)articleId andNavType:(NavTypeCollection)navType andDelegate:(UIViewController<WSHelperDelegate> *)vc {

   // ...
   [[NSHelper sharedInstance] getDetailDataWithEntity:...];

}