天天看点

【iOS】利用block实现回调的示例

利用block完成回调,小demo一个。闲话少说,直接上代码了!O(∩_∩)O~

TestObject.h

#import <Foundation/Foundation.h>

typedef void (^FinishBlock)(NSString *backStr);

@interface TestObject : NSObject

//能进行回调的方法
- (void)playSomeTime:(FinishBlock)block;

@end           

TestObject.m

#import "TestObject.h"

@implementation TestObject

- (void)playSomeTime:(FinishBlock)block{
    
    for (int i = 0; i< 5000; i++) {
        NSLog(@"i===%d",i);
    }
    block(@"被回调的字符串O(∩_∩)O~");
}

@end           

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@end           

ViewController.m

#import "ViewController.h"
#import "TestObject.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    TestObject *obj = [[TestObject alloc] init];
    [obj playSomeTime:^(NSString *backStr){
        NSLog(@"回调完成,被返回的结果===%@",backStr);
    }];
    NSLog(@"这是同步操作,需要等待回调完成");
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}

@end