【Objective-C】ブロック構文(クロージャ)で無名関数を作り変数に値を入れる方法

2020年8月26日

ブロック構文(クロージャ)で無名関数を作り変数に値を入れる方法です。
ブロックについて探してもブロック関数を作るものばかりで、無名関数や変数にそのまま値を代入できるブロックの記述がなかったのでメモしておきます。

ブロック構文(クロージャ)で無名関数を作り変数に値を入れる方法

- (void)viewDidLoad {
    [super viewDidLoad];

    NSString *string = @"aaa";
    
    NSString *string2 = ^NSString *(){
        NSString *s1 = @"abc";
        NSString *s2 = @"def";
        return [NSString stringWithFormat:@"%@%@",s1,s2];
    }();

    NSLog(@"string:%@",string); // aaa
    NSLog(@"string2:%@",string2); // abbcdef
}