block 各种声明小结

// As a local variable 
returnType (^blockName)(parameterTypes) = ^returnType(parameters) {  
    // Block code here 
}; 
    NSUInteger (^name)(NSUInteger) = ^NSUInteger(NSUInteger max){
        return 0;
    };
    name(2);
// As a property 
@property (nonatomic, copy) returnType (^blockName)(parameterTypes); 

@property(nonatomic,copy) void (^blockName)( NSInteger);

self.blockName = ....
// As a method parameter  函数声明
- (void)someMethodThatTakesABlock:(returnType (^)(parameterTypes))blockName { 
   // Block code here 
}; 
-(void)someMethod:(NSUInteger (^)(NSString *)) blockName
{
    
}

// As an argument to a method call  函数调用
 
[someObject someMethodThatTakesABlock: ^returnType (parameters) { 
 
    // Block code here 
}];     
 [self someMethod:^NSUInteger(NSString *name) {
        return 0;
   }];
// As a typedef 
typedef returnType (^TypeName)(parameterTypes); 
typedef void (^blockName) (NSString*);

TypeName blockName = ^(parameters) { 
 
    // Block code here 
}; 
blockName bb = ^(NSString * parameterName)
    {
    };
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容