皇冠365bet体育投-365bet最新备用-beat365官方网站正规

— 怀旧经典 · 永恒记忆 —

iOS 面试题(九):为什么block要使用copy而不是strong或者其他属性修饰?

iOS 面试题(九):为什么block要使用copy而不是strong或者其他属性修饰?

相信有很多面试者被问到这样的问题:block使用什么修饰,往往能够答出是copy,很多面试官就会问到:为什么要使用copy,这时候就懵了。我亲身体验了一把,所以先总结一下。block本身是像对象一样可以retain,和release。但是,block在创建的时候,它的内存是分配在栈上的,而不是在堆上。他本身的作于域是属于创建时候的作用域,一旦在创建时候的作用域外面调用block将导致程序崩溃。因为栈区的特点就是创建的对象随时可能被销毁,一旦被销毁后续再次调用空对象就可能会造成程序崩溃,在对block进行copy后,block存放在堆区.使用retain也可以,但是block的retain行为默认是用copy的行为实现的,因为block变量默认是声明为栈变量的,为了能够在block的声明域外使用,所以要把block拷贝(copy)到堆,所以说为了block属性声明和实际的操作一致,最好声明为copy。

相关推荐

皇冠365bet体育投 美术小学堂:一分钟学会画只不一样的“龟”

美术小学堂:一分钟学会画只不一样的“龟”

📅 07-02 👁️ 4380
365bet最新备用 赵琦鑫(中国男主持人)

赵琦鑫(中国男主持人)

📅 07-28 👁️ 5470
365bet最新备用 皮肤科医生教你如何安全挤痘痘!

皮肤科医生教你如何安全挤痘痘!

📅 07-30 👁️ 7845
beat365官方网站正规 家里的无线路由器不要放在这6个地方,不然WiFi信号会减半

家里的无线路由器不要放在这6个地方,不然WiFi信号会减半

📅 07-20 👁️ 4022
beat365官方网站正规 淘宝上关注了的店铺从哪里找

淘宝上关注了的店铺从哪里找

📅 07-23 👁️ 8826
365bet最新备用 0158是那里的区号

0158是那里的区号

📅 07-08 👁️ 182
beat365官方网站正规 国珍官网旗舰店介绍

国珍官网旗舰店介绍

📅 08-18 👁️ 7508
皇冠365bet体育投 中文小黑点符号怎么打 , 如何打出中文符号、

中文小黑点符号怎么打 , 如何打出中文符号、

📅 07-01 👁️ 8415
皇冠365bet体育投 淘宝网店图片无法上传?别急,这里有解决方案!

淘宝网店图片无法上传?别急,这里有解决方案!

📅 07-18 👁️ 1245
365bet最新备用 幼蚕的机体奥秘

幼蚕的机体奥秘

📅 08-18 👁️ 6176
皇冠365bet体育投 饭后间隔多长时间喝水较为适宜

饭后间隔多长时间喝水较为适宜

📅 07-07 👁️ 7596