//有參數,無返回值 ^(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;