block使用场景(1)-保存代码

这篇文章主要记录block保存代码的用法。

本例子实现对不同 标的 状态的不同操作。

1.首先在BidCellitem.h模型类中申明block

@property (nonatomic,strong)void(^selectbidcellBlock)();

2.在TableViewController.m的- (void)viewDidLoad方法中定义block(包含了数据源的方法)

- (void)viewDidLoad {

[super viewDidLoad];

for (NSInteger i ; i<20; i++) {

Bidtstaus staus = arc4random()%5;

BidCellitem *item = [BidCellitem itemWithBidtstaus:staus];

__weak typeof(item)Weakitem = item;

item.selectbidcellBlock = ^{

__strong typeof(Weakitem)StrongItem  = Weakitem;

NSString *message = [StrongItem.title stringByAppendingString:@"的控制器"];

UIAlertController *alertController =[UIAlertController alertControllerWithTitle:@"想去跳转" message: message preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"好的"style:UIAlertActionStyleDefault handler:nil];

[alertController addAction:okAction];

[self presentViewController:alertController animated:YES completion:nil];

};

[self.bidArr addObject:item];

}

}

在TableViewController.m的didSelectRowAtIndexPath方法中调用了block

if (item.selectbidcellBlock) {

item.selectbidcellBlock();

};

完整项目见https://github.com/youweikang/block-.git

推荐阅读更多精彩内容