UIAlertViewを使ってたらdelegateを指定する方法しかなく不便だったのでちょっと探してみた
githubの star準
- https://github.com/zwaldowski/BlocksKit
- https://github.com/jivadevoe/UIAlertView-Blocks
- https://github.com/Innovattic/UIKit-Blocks
3つともやってることは同じようなので、BlocksKit
を使ってみる
軽く使うなら他のがいい。
BlocksKit
- 2.0から メソッドが
bk_
で始まることに注意 - importの際に
#import <BlocksKit/BlocksKit.h>
だけでなく書く使うblockのheaderまでimportする必要がある - documentをみる : http://cocoadocs.org/docsets/BlocksKit/2.2.0/
// 2.0以前
#import <BlocksKit/BlocksKit.h>
// 2.0
#import <BlocksKit/BlocksKit.h>
#import <BlocksKit/BlocksKit+UIKit.h>
// または つかうものだけ
#import <BlocksKit/BlocksKit.h>
#import <BlocksKit/UIAlertView+BlocksKit.h>
variable scope
variable is not assignable missing block type specifier
block内でblock外の変数へセットするためには__block
が必要
-(void)blockSample2
{
__block int x = 1;
int y = 2;
int (^block)(int, int) = ^(int a, int b){
x = 2;
return x * y * a * b;
};
int ret = block(3, 4);
NSLog(@"ret = %d x = %d", ret, x);
}