Block 三个注意事项
来源:互联网 发布:淘宝网店怎么过户 编辑:程序博客网 时间:2024/04/30 07:04
1. 如何修改外部block的外部变量:加上__block
int main(int argc,const char * argv[]) {
@autoreleasepool {
__block int a =100;
void (^block)() = ^{
a = 10;
NSLog(@"a = %d",a);
};
block();
}
return 0;
}
2.block作为参数被传递时,block不能为空,要对block做为空判断
#import <Foundation/Foundation.h>
void goToWork(void (^work)())
{
NSLog(@"刷牙洗脸吃饭");
work(); //这里会报错,EXC_BAD_ACCESS
NSLog(@"下班回家睡觉");
}
int main(int argc,const char * argv[]) {
@autoreleasepool {
// goToWork(^{
// NSLog(@"上班");
// });
goToWork(nil);
}
return 0;
}
加上判断即可:
void goToWork(void (^work)())
{
NSLog(@"刷牙洗脸吃饭");
if (work != nil)
{
work();
}
NSLog(@"下班回家睡觉");
}
__weak typeof(self) weakSelf = self;
- Block 三个注意事项
- Block---注意事项
- block注意事项
- Block注意事项
- block 注意事项
- IOS block编程注意事项
- 使用Block 注意事项
- IOS block编程注意事项
- block的注意事项
- block 使用注意事项
- IOS block编程注意事项
- block 应用及注意事项
- block【数据类型】使用注意事项
- iOS block使用注意事项
- 105,block的注意事项
- Block 部分使用注意事项
- block 注意事项 和陷阱
- gcd使用block注意事项
- 129、Sum Root to Leaf Numbers
- git怎么才能每次不用输入用户名和密码(方法二:通过ssh公钥) pull代码
- 背景图片background
- 【Codeforces 343D】Water Tree dfs序建树+线段树
- HTML标签以及各个标签属性大全(网页制作必备)
- Block 三个注意事项
- leetcode Minimum Height Trees
- Java简单爬虫示例
- PAT Basic 1007
- 关于数据预处理的相关技巧
- jsp调用javabean
- 浅谈Spring事务隔离级别
- >分治算法
- [leetcode] 203. Remove Linked List Elements