BlocksKit 是我用的非常爽的库之一,它取代了很多通常的delegate用法,但强大的delegate并不会死,比如UITableView*Delegate和NSURLConnectionDelegate这样的大怪兽。blocks和delegate都含有转发并执行的逻辑前者适合小而常用的逻辑,比如action,animation,BlocksKit对这些用法提炼到了极致(不过还有提升空间,这都是大神的事了)。
它是一个开源的与Cocoa紧密集合的基础性框架,BlocksKit并没有创建新的宏,函数,方法和类,只是对Cocoa类的一个扩展,是一个blocks的大杂碎,也是Zachary Waldowski集思广益精炼得来的,说白了它就是利用blocks的优势,给Cocoa类增加了一系列实用方法, 比如让NSObject执行blocks,用blocks对UIView增加触摸动作。
[_view whenTapped:^{
//........
}];
这样至少再也看不到恶心的btn.tag = [10000+i];这中标记。
或者导航中:
UIBarButtonItem *backForwardBarButton = [[UIBarButtonItem alloc] bk_initWithImage:[UIImage imageNamed:@"Back"] style:UIBarButtonItemStylePlain handler:^(id sender) {
if ([_webView canGoBack]) {
[_webView goBack];
} else {
[self.navigationController popViewControllerAnimated:YES];
}
}];
甚至可以在一些初始化:
UIAlertView *tempAlertView = [[UIAlertView alloc] bk_initWithTitle:title message:detail];
[tempAlertView setAlertViewStyle:UIAlertViewStyleSecureTextInput];
[[tempAlertView textFieldAtIndex:0] setPlaceholder:placeholder];
[tempAlertView bk_addButtonWithTitle:cancelButtonTitle handler:^{
if (cancelButtonHandler) {
cancelButtonHandler();
}
}];
、、、、、、库里面还有大量实用的方法等着大家一起发掘
最后附上github地址:https://github.com/zwaldowski/BlocksKit.git
或者直接cocoa pods: pod 'BlocksKit'
网友评论