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

时间:2015-08-20 08:27:20

标签: ios objective-c uiviewcontroller delegates

我已经设置了这样的委托,我得到了警告。如果我把WSHelperDelegate,它会沉默。但是,在这种情况下,我需要使用像UIVIewController这样的一般情况,而不是告诉特定的视图控制器。我该如何沉默这个警告?

enter image description here

2 个答案:

答案 0 :(得分:1)

确保控制器符合您正在使用的代理:

例如:

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

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

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

答案 1 :(得分:1)

你有几个选择来解决这个问题:

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:...];

}