热点新闻
为什么block要使用copy而不是strong或者其他属性修饰?
2023-07-05 21:34  浏览:1219  搜索引擎搜索“手机易展网”
温馨提示:信息一旦丢失不一定找得到,请务必收藏信息以备急用!本站所有信息均是注册会员发布如遇到侵权请联系文章中的联系方式或客服删除!
联系我时,请说明是在手机易展网看到的信息,谢谢。
展会发布 展会网站大全 报名观展合作 软文发布

block本身是像对象一样可以retain,和release。但是,block在创建的时候,它的内存是分配在栈上的,而不是在堆上。

其本身的作用域是属于创建时候的作用域,一旦在创建时候的作用域外面调用block将导致程序崩溃。因为栈区的特点就是创建的对象随时可能被销毁,一旦被销毁后续再次调用空对象就可能会造成程序崩溃,在对block进行copy后,block存放在堆区。使用retain也可以,但是block的retain行为默认是用copy的行为实现的,因为block变量默认是声明为栈变量的,为了能够在block的声明域外使用,所以要把block拷贝(copy)到堆,所以说为了block属性声明和实际的操作一致,最好声明为copy。

发布人:029f****    IP:120.230.75.***     举报/删稿
展会推荐
  • 修仙
  • 2023-07-05浏览:1116
让朕来说2句
评论
收藏
点赞
转发