標籤:ios block 回調
其實,iOS中的Block就是C++中的函數指標,實現方式都是一樣的,下面貼出一個簡單的實踐。
首先,建立一個回調的類
BlockStudy.h
//// BlockStudy.h// BlockStudy//// Created by 杜甲 on 11/11/14.// Copyright (c) 2014 杜甲. All rights reserved.//#import <Foundation/Foundation.h>@interface BlockStudy : NSObjecttypedef void (^TestBlock)();@property (nonatomic , strong) TestBlock testBlock;- (void)StartBlock;@end
BlockStudy.m
//// BlockStudy.m// BlockStudy//// Created by 杜甲 on 11/11/14.// Copyright (c) 2014 杜甲. All rights reserved.//#import "BlockStudy.h"@implementation BlockStudy- (void)test{ if (_testBlock) { _testBlock(); }}- (void)StartBlock{ [self performSelector:@selector(test) withObject:nil afterDelay:2.0];}@end
調用類ViewController.m
//// ViewController.m// BlockStudy//// Created by 杜甲 on 11/11/14.// Copyright (c) 2014 杜甲. All rights reserved.//#import "ViewController.h"#import "BlockStudy.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. BlockStudy *block = [[BlockStudy alloc] init]; block.testBlock = ^() { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Block學習" message:@"測試成功" delegate:self cancelButtonTitle:@"取消吧" otherButtonTitles:@"OK", nil]; [alert show]; }; [block StartBlock];}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
iOS 使用Block實現函數回調