//有参数,无返回值 ^(int a, int b){ return a + b; }; //没有参数,没有返回值 ^{ }
typedef int (^MyBlock)(int,int); //之后能够利用Myblock这种类型来定义block变量 MyBlock sum = ^(int a, int b){ return a + b; }; //或者 MyBlock mb1,mb2; mb1 = ^(int a, int b){ return a + b; };
@protocol 协议名称 <NSObject> //方法声明列表... @end
@interface 类名 :父类名 <协议名称1,协议名称2> //方法声明列表... @end
@protocol 协议名称 <其余协议名称1, 其余协议名称2>
//方法声明列表...
@end
//类名<协议名称> *变量名;
//id<协议名称> 变量名;
NSObject<MyProtocol> *obj
id<MyProtocol> obj2;
//@property (nonatomic, strong) 类名<协议名称> *属性名; //@property (nonatomic, strong) id<协议名称> 属性名; @property (nonatomic, strong) Dog<MyProtocol> *dog; @property (nonatomic, strong) id<MyProtocol> obj;