美文网首页
block的一些注意事项

block的一些注意事项

作者: 爱易寒曲易散 | 来源:发表于2015-11-28 20:50 被阅读69次

Block的使用注意:

block的内存管理(注意循环引用,默认在栈中(不需要内存管理),通过copy就在在堆中,就要注意内存管理)

防止循环retian

非ARC(MRC):__block

ARC:__weak\__unsafe_unretained

1)当对block使用copy时,就自动将block函数内容从栈区复制到堆区

2)在block块中引用[p run],两者之间会产生一个强引用,最终导致循环引用

3)对block对象使用weak,则能避免此类情况

当使用int age = 10 时,block块中会出现值捕获,即在工程编译时,age = 10;便会传递到block块中,及时在下面重新对age赋值,block块中的age值也不会发生改变,仍为10;

当使用——block int age = 10时,则将age改变成一个变量,每次对age 重新赋值,都会重新调用block块函数,从而age的值会不断发生改变。

当block和控制器相互引用时


相关文章

  • Block注意事项

    1.Block注意事项 在block内部可以访问block外部的变量 block内部也可以定义和block外部的同...

  • OC - Block

    导读: 一、Block是什么 二、Block的特点和作用 三、Block的声明、定义及注意事项 四、如何使用Blo...

  • block的一些注意事项

    Block的使用注意: block的内存管理(注意循环引用,默认在栈中(不需要内存管理),通过copy就在在堆中,...

  • Block

    常用写法: OC中: Swift中: 注意事项: block默认存储在栈中,如果对block进行copy操作,bl...

  • iOS block深入理解

    在平时的开发中,对于block,只是知道主要用于数据回调上,对于其内部实现方式,以及一些使用时的注意事项,...

  • OC语言day06-15Block注意事项

    pragma mark Block注意事项 pragma mark 概念 pragma mark 代码 Perso...

  • iOS之轻松上手block(下)

    导语 在上一篇文章《iOS之轻松上手block(上)》中,笔者已经讲述了block的使用与注意事项,此文继续讲解b...

  • Block注意事项

    1.block是存储在堆中还是栈中? 默认情况下block在栈中,但是如果对block进行了一个copy操作,bl...

  • block注意事项

    1、在使用block前需要对block指针做判空处理 2、block如果作为属性变量时,要copy一下,将栈上的b...

  • NSAlert

    注意事项: 执行run Modal 会block 主线程等alert 退出modal 状态之后,主线程恢复运行。m...

网友评论

      本文标题:block的一些注意事项

      本文链接:https://www.haomeiwen.com/subject/ykadhttx.html