Block 使用总结
来源:互联网 发布:php防止表单模拟提交 编辑:程序博客网 时间:2024/04/29 09:55
- (void)testBlockWeakObj1
{
UILabel *tl = [[UILabelalloc]init];//本地局部变量
__weak UILabel *weakTL = tl;//弱引用变量
NSLog(@"%s tl %p",__FUNCTION__ , &tl);
NSLog(@"%s tl %@",__FUNCTION__ , tl);
NSLog(@"%s weakTL %p",__FUNCTION__ , &weakTL);
NSLog(@"%s weakTL %@",__FUNCTION__ , weakTL);
void (^TestBlock)(void) = ^{
//复制tl指针,并且强引用tl
NSLog(@"%s tl %p",__FUNCTION__ , &tl);
NSLog(@"%s tl %@",__FUNCTION__ , tl);
//复制weakTL指针,并且弱引用weakTL
NSLog(@"%s weakTL %p",__FUNCTION__ , &weakTL);
NSLog(@"%s weakTL %@",__FUNCTION__ , weakTL);
};
tl = nil;
TestBlock();
NSLog(@"block is %@", TestBlock);
}
/*输出结果
2014-02-21 17:50:42.591 TestBlock[13888:70b] -[ViewController testBlockWeakObj1] tl 0xbfffc9b0
2014-02-21 17:50:42.591 TestBlock[13888:70b] -[ViewController testBlockWeakObj1] tl <UILabel: 0x8c57c30; frame = (0 0; 0 0); clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x8c562d0>>
2014-02-21 17:50:42.592 TestBlock[13888:70b] -[ViewController testBlockWeakObj1] weakTL 0xbfffc9ac
2014-02-21 17:50:42.592 TestBlock[13888:70b] -[ViewController testBlockWeakObj1] weakTL <UILabel: 0x8c57c30; frame = (0 0; 0 0); clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x8c562d0>>
2014-02-21 17:50:42.592 TestBlock[13888:70b] __35-[ViewController testBlockWeakObj1]_block_invoke tl 0x8b09434
2014-02-21 17:50:42.593 TestBlock[13888:70b] __35-[ViewController testBlockWeakObj1]_block_invoke tl <UILabel: 0x8c57c30; frame = (0 0; 0 0); clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x8c562d0>>
2014-02-21 17:50:42.611 TestBlock[13888:70b] __35-[ViewController testBlockWeakObj1]_block_invoke weakTL 0x8b09438
2014-02-21 17:50:42.612 TestBlock[13888:70b] __35-[ViewController testBlockWeakObj1]_block_invoke weakTL <UILabel: 0x8c57c30; frame = (0 0; 0 0); clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x8c562d0>>
2014-02-21 17:50:42.612 TestBlock[13888:70b] block is <__NSMallocBlock__: 0x8b09420>
*/
- (void)testBlockWeakObj2
{
__block UILabel *tl = [[UILabelalloc]init];//加上block关键字就变成全局变量
__weak UILabel *weakTL = tl;//弱引用变量
NSLog(@"%s tl %p",__FUNCTION__ , &tl);
NSLog(@"%s tl %@",__FUNCTION__ , tl);
NSLog(@"%s weakTL %p",__FUNCTION__ , &weakTL);
NSLog(@"%s weakTL %@",__FUNCTION__ , weakTL);
void (^TestBlock)(void) = ^{
//tl是全局变量,强引用
NSLog(@"%s tl %p",__FUNCTION__ , &tl);
NSLog(@"%s tl %@",__FUNCTION__ , tl);
//复制weakTL指针,并且弱引用weakTL
NSLog(@"%s weakTL %p",__FUNCTION__ , &weakTL);
NSLog(@"%s weakTL %@",__FUNCTION__ , weakTL);
};
tl = nil;
TestBlock();
NSLog(@"block is %@", TestBlock);
}
/*输出结果
2014-02-21 17:55:13.832 TestBlock[13926:70b] -[ViewController testBlockWeakObj1] tl 0xbfffc9b0
2014-02-21 17:55:13.832 TestBlock[13926:70b] -[ViewController testBlockWeakObj1] tl <UILabel: 0x8a32470; frame = (0 0; 0 0); clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x8a37410>>
2014-02-21 17:55:13.832 TestBlock[13926:70b] -[ViewController testBlockWeakObj1] weakTL 0xbfffc994
2014-02-21 17:55:13.833 TestBlock[13926:70b] -[ViewController testBlockWeakObj1] weakTL <UILabel: 0x8a32470; frame = (0 0; 0 0); clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x8a37410>>
2014-02-21 17:55:13.833 TestBlock[13926:70b] __35-[ViewController testBlockWeakObj1]_block_invoke tl 0x8a3bdf8
2014-02-21 17:55:13.833 TestBlock[13926:70b] __35-[ViewController testBlockWeakObj1]_block_invoke tl (null)
2014-02-21 17:55:13.834 TestBlock[13926:70b] __35-[ViewController testBlockWeakObj1]_block_invoke weakTL 0x8a3bdd8
2014-02-21 17:55:13.834 TestBlock[13926:70b] __35-[ViewController testBlockWeakObj1]_block_invoke weakTL (null)
2014-02-21 17:55:13.834 TestBlock[13926:70b] block is <__NSMallocBlock__: 0x8a3bdc0>
*/
- Block 使用总结
- block的使用总结
- iOS block使用总结
- block的使用总结
- block的使用总结
- Block使用总结
- iosiOS学习总结----block的简单使用
- Block 理解 总结 使用demo 通俗易懂
- block总结
- Block总结
- Block总结
- Block总结
- block总结
- BLOCK总结
- Block总结
- block总结
- Block总结
- Block使用
- solr与tomcat整合
- Android MT6572平台Recent界面背景是高亮的,但是其他平台是灰色的
- C++语言打印汉字表
- [学习记录]Kepware学习记录(2)
- Service
- Block 使用总结
- 脸谱为什么认为WhatsApp每个员工值20亿
- 时间日期格式化用法
- 闪回事务处理回退
- 关于jquery的load方法在ie7下面不能很好达到预想中问题的解决办法。
- 执行 sudo 命令下避免输入密码的两个方法
- http://home.gongkong.com/profile/blogdetail.aspx?id=2013120610242900001
- c++ 栈的顺序表示
- unix环境高级编程