@implementation ViewController
– (void)viewDidLoad
{
[superviewDidLoad];
// 戻り値 void, 引数無しの block
void (^simpleBlock)(void);
// PATTERN 1 戻り値、引数の括弧:あり
simpleBlock = ^void() {
NSLog(@”hello pattern1!”);
};
// 実行
simpleBlock();
// PATTERN 2 戻り値:あり、引数の括弧:省略。
simpleBlock = ^void{
NSLog(@”hello pattern2!”);
};
// 実行
simpleBlock();
// PATTERN 3 戻り値:あり、引数の括弧:省略。
simpleBlock = ^(void){
NSLog(@”hello pattern3!”);
};
// 実行
simpleBlock();
// PATTERN 4 戻り値、引数の括弧を省略
simpleBlock = ^{
NSLog(@”hello pattern4!”);
};
// 実行
simpleBlock();
// 他1 戻り値:無し、引数:有りのblock は戻り値を省略可能
void (^argOnly)(int) = ^(int a) {
NSLog(@”%d”, a + 4);
};
argOnly(5);
// 他2 戻り値:有り、引数:無しのblock は引数を省略可能
NSString* (^returnOnly)(void) = ^NSString* {
return @”文字列を返却“;
};
NSLog(@”%@”, returnOnly());
}