ios block 实现函数回调

来源:互联网 发布:蜂窝数据没有app选项 编辑:程序博客网 时间:2024/05/16 11:07

//A.h

#import <Foundation/Foundation.h>


@interface A : NSObject

- (void)delegate:(int (^)(int,int))block;

@end


//A.m

#import "A.h"


@implementation A

- (void)delegate:(int (^)(int,int))block{

    block(10,20);//自己的方法自己并没实际地执行,而是交由其它类来执行(譬如B)

}

@end



//B.h

#import <Foundation/Foundation.h>


@interface B : NSObject

- (void)aMethod;

@end


//B.m

#import "B.h"

#import "A.h"


@implementation B

- (void)aMethod{

   A *a = [[[Aalloc] init]autorelease];

    [adelegate:^int(int a,int b){return a + b;}];

    //delegateA类的方法,但实际执行的时候还是在B类执行,这就是方法回调

    //通俗的理解就是B实现了A的方法,A自己并不实际执行自己的方法delegate

    //B类来实现

}

@end


//AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {


   B *b = [[[Balloc] init]autorelease];

    [baMethod];

    return YES;

}



0 0
原创粉丝点击