1 _ _block 修饰的变量可以在block内外修改;
例:
__block NSString *str = @"1";
void(^myBlock)(NSString *s)=^(NSString *s){
str = @"b";
NSLog(@"%@",str);
};
NSLog(@"%@",str);
myBlock(nil);
str = @"2";
NSLog(@"%@",str);
输出:1 b 2;
2 仅_ _block 不能解决循环引用,但在block内将修饰的对象(而基本数据类型,不需要我们管理内存)置nil,可以解决循环引用;
本文介绍了Objective-C中__block修饰符的作用,包括如何使用__block修饰的变量在block内外进行修改,以及如何通过将__block修饰的对象置nil来解决循环引用问题。
545

被折叠的 条评论
为什么被折叠?



