1.typedef (戻り値)(^ブロック型名)(引数)
typedef void(^Test)(NSString*);
Test test = ^void (NSString* str) {// リターンのvoidは省略可
if(str) {
NSLog(@"ON");
}
else {
NSLog(@"OFF");
}
}
typedefを使うとxcodeでコード補完ができない気がする。。。
2.プロパティでのBlock
@property(copy, nonatomic) void (^test)(NSString*);
3.引数でのBlock
-(void)blockTest:(void (^)(Test*)) testBlock {
}
4.戻り値でのBlock
-(void (^)(Test*))testBlock {
void (^testBlock) (Test*) = ^(Test* test) {
test.score = 100;
};
return testBlock;
};