美文网首页
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的一些注意事项

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