void 戻り値の型を持つ多くのブロックを見てきました。ただし、非 void ブロックを宣言することは可能です。これの用途は?
ブロック宣言、
-(void)methodWithBock:(NSString *(^)(NSString *str))block{
// do some work
block(@"string for str"); // call back
}
メソッドを使用して、
[self methodWithBock:^NSString *(NSString *str) {
NSLog(str); // prints call back
return @"ret val"; // <- return value for block
}];
上記のブロック宣言では、ブロックの NSString 戻り値の型の目的は何ですか? 戻り値 ("ret val") はどのように使用できますか?