一,代码。
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// 第一种是可以修改 static 全局变量;第二种是可以修改用新关键字 __block 修饰的变量。
__block int blockLocal = 100;
static int staticLocal = 100;
void (^aBlock)(void) = ^(void){
blockLocal++;
staticLocal++;
};
NSLog(@"----blockLocal--%d",blockLocal);
NSLog(@"---staticLocal--%d",staticLocal);
aBlock();
NSLog(@"----blockLocal--%d",blockLocal);
NSLog(@"---staticLocal--%d",staticLocal);
}
二,输出。
2015-10-23 13:15:30.598 在Block中修改外部变量的值[7561:195731] ----blockLocal--100
2015-10-23 13:15:30.598 在Block中修改外部变量的值[7561:195731] ---staticLocal--100
2015-10-23 13:15:30.598 在Block中修改外部变量的值[7561:195731] ----blockLocal--101
2015-10-23 13:15:30.598 在Block中修改外部变量的值[7561:195731] ---staticLocal--101
总结
以上所述是小编给大家介绍的iOS在Block中修改外部变量值的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对软件开发网网站的支持!
您可能感兴趣的文章:iOS中Block的回调使用和解析详解iOS面试中如何优雅回答Block导致循环引用的问题iOS利用Block逆向传值的方式详解一篇文章让你看懂IOS中的block为何再也不需要WeakSelf弱引用IOS 使用Block二次封装AFNetworking 3.0详解iOS通过逆向理解Block的内存模型iOS通过block在两个页面间传值的方法iOS Block解开多年以来一直的误解iOS中block变量捕获原理详析iOS调试Block引用对象无法被释放的小技巧分享