热点新闻
为什么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句
评论
收藏
点赞
转发