这段时间闲来没事就研究一下block,说不上了解甚多,只是觉得它是一个研究方向,对自己有帮助所以就写了段代码来巩固一下,顺便纪念一下
alertView是一个不错的控件,给ios开发提供了有利的帮助,但是苹果官方所给出的demo远远不能满足开发者的需要,所以就出现了许多自定义,在这个基础上,自己想用block来实现alertView的基本功能,什么都不说了 直接代码
.h 文件
#import <UIKit/UIKit.h>
@interface ZYAlertView : UIAlertView<UIAlertViewDelegate>
@property(copy, nonatomic)void (^ handlerIndex)(NSUInteger);
- (void)showIt:(void(^)(NSInteger index))selectIndex;
@end
.m 文件
#import "ZYAlertView.h"
@implementation ZYAlertView
- (void)showIt:(void(^)(NSInteger index))selectIndex
{
self.delegate = self;
//init handler
_handlerIndex = [selectIndex copy];
[selfshow];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSLog(@"_____ %d",buttonIndex);
_handlerIndex(buttonIndex);
[_handlerIndexrelease];
}
@end
首先解释一下
self.delegate = self;
当你不填写这句话的时候 就起不到点击button 调用UIAlertDelegate的作用
_handlerIndex = [selectIndex copy];
这句话是初始化一个_handlerIndex
剩下的就是围绕这个代理方法所展开的工作 , block 我还会继续研究,有新的作品,将会继续展现
转载于:https://blog.51cto.com/6951916/1330981