您的位置:首页 > 编程语言

block代码块

2014-01-29 17:33 232 查看
block代码块看起来语法很怪异,简单来说它就是一个很灵活的代码块,在你想调用的时候在调用。

#import <Foundation/Foundation.h>

@class Button;

typedef
void (^ButtonBlock) (Button *btn);

@interface Button :
NSObject

@property (nonatomic,assign)ButtonBlock block;

-(void)click;

@end
#import "Button.h"

@implementation Button
-(void)click{
   
_block(self);
}

@end
main

#import <Foundation/Foundation.h>

#import "Button.h"

typedef int(^Sum2) (int,int);

void test(){

    //返回值 (^block名称)(接收的参数)
   
int (^Sum)(int,int)=^(int a,int b){
       
return a+b;
    };
   
int i=Sum(10,10);
}
void test2(){

    //声明了一个block
   
Sum2 sum=^(int a,int b){
       
return a+b;
    };

    
}
int main(int argc,
const char * argv[])
{

    @autoreleasepool {

        
       
Button *btn=[[[Button
alloc]init]autorelease];
       
//回调
        btn.block=^(Button *btn){
           
NSLog(@"click....");
        };
        [btn
click]; //运行到这里的时候才去调用block中的方法

        
    }
   
return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  block 代码块 objectc