用id在block中作参数,提示Implicit declaration invalid

iOS 码拜 9年前 (2015-09-18) 855次浏览
 
我的代码如下:
@property(nonatomic,copy) void (^backValue) (id choicevalue);

controller.backValue=^(id  abc)

 {

      ……

    };

         NSString* a = @”5″;

        id i = a;

        _backValue(i);  //这里提示出错

        

但提示出错:Implicit declaration of function “”_backValue”” is invalid in C99

        把id修改成NSString* ,就OK了,如下所示:

  @property(nonatomic,copy) void (^backValue) (NSString* choicevalue);

 controller.backValue=^(NSString*

  abc)

 {

      ……

    };

  _backValue(@“abc”);

         但是我这里类型不想固定,用id如何实现呢?

#1

20分

我之前试过,直接用 id 是可以的,有完整的 Demo 么?
#2
我知道了,是因为我的这个 在父类中定义的,

@property(nonatomic,copy) void (^backValue) (NSString* choice value);

调用时,还得加上super.backValue(i); 


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明用id在block中作参数,提示Implicit declaration invalid
喜欢 (0)
[1034331897@qq.com]
分享 (0)