大多情况下,以内联inline函数的方式被定义和使用
系统中有自带的inlineblock, Xcode里直接敲就会出现block
void(^demoBlock)() = ^ { NSLog(@"demo Block"); }; int(^sumBlock)(int, int) = ^(int x, int y) { return x + y; };
block 定义属性值,使用copy
@property (nonatomic, copy) BLOCKHANDLE finishBlock;
- (void)demoBlockOp { // 不能用__weak // __weak DemoObj *weakSelf = self; // 只有self直接强引用block,才会出现循环引用 // block的管理以及线程的创建和销毁是由队列负责的,直接在block中使用self没有关系! for (int i = 0; i < 10; ++i) { [self.queue addOperationWithBlock:^{ //不能使用__weak // [weakSelf demoOp:@(i)]; [self demoOp:@(i)]; }]; } }