当前位置: 首页 > news >正文

陕西网站开发联系方式网站设置文件

陕西网站开发联系方式,网站设置文件,建一个做笔记的网站,dw代码做网站以下是对我们这整段关于 Objective-C 中 Block、__block 修饰符、内存管理行为、生命周期等内容的全面总结#xff0c;并附带了一套适合面试准备的面试题集#xff08;带答案#xff09;。 #x1f9e0; 一、知识总结#xff1a;Objective-C Block __block 修饰符 ✅ Bl…以下是对我们这整段关于 Objective-C 中 Block、__block 修饰符、内存管理行为、生命周期等内容的全面总结并附带了一套适合面试准备的面试题集带答案。 一、知识总结Objective-C Block __block 修饰符 ✅ Block 的三种类型 Block 类型类名runtime存储位置是否捕获变量生命周期全局 Block__NSGlobalBlock__全局区.data❌ 不捕获程序整个生命周期栈 Block__NSStackBlock__栈上✅ 捕获随函数作用域结束销毁堆 Block__NSMallocBlock__堆上copy 后✅ 捕获ARC/MRC 管理 ✅ ARC 与 MRC 的区别 特性ARCMRC是否自动 copy Block✅ 是捕获变量会自动 copy 到堆❌ 否需手动 copyNSAutoreleasePool 可用❌ 不可用改用 autoreleasepool✅ 可以使用retain/release 是否可用❌ 禁止✅ 手动管理 ✅ __block 修饰符 特性默认变量__block 修饰是否可在 Block 中修改❌ 否值捕获✅ 是引用捕获捕获方式值拷贝by value引用封装为结构体生命周期Block 生命周期内有效Block 生命周期或外部引用共同决定释放机制不需要释放副本自动随 Block 释放ARC 下自动 retain/release ✅ 修改变量是否需要 __block 操作类型是否需要 __block修改对象内容如 addObject:❌ 不需要修改指针变量本身如 obj nil✅ 需要修改基本类型变量✅ 需要捕获但不修改变量❌ 不需要 ✅ 生命周期补充 捕获变量类型生命周期默认与 Block 相同可否更长基本类型✅ 是❌ 否对象类型未被强引用✅ 是✅ 可被外部引用延长__block 捕获对象✅ 是✅ 可 retain 延长或造成循环引用 二、面试题集 以下是整理出的 15 道典型面试题附答案覆盖基础、陷阱和进阶内容 ✅ 基础题 Q1: Block 有哪三种类型它们的区别是什么 ️__NSGlobalBlock__不捕获变量放在全局区、__NSStackBlock__捕获变量栈上临时、__NSMallocBlock__捕获变量 copy 后的堆 Block生命周期更长。 Q2: 什么情况下 Block 是 __NSGlobalBlock__ ️当 Block 没有捕获任何外部变量时它就是 __NSGlobalBlock__存在全局数据段程序整个生命周期都有效。 Q3: 在 ARC 和 MRC 下 Block 的默认行为有何不同 ️ ARCBlock 捕获变量时自动拷贝到堆上自动成为 __NSMallocBlock__MRCBlock 默认在栈上__NSStackBlock__需手动 copy。 Q4: 为什么要将 Block 从栈 copy 到堆 ️因为栈上的 Block 随函数调用结束而销毁拷贝到堆上可以安全地在异步、延迟或跨作用域中使用。 Q5: ARC 下是否需要手动调用 copy ️不需要编译器会自动为你 copy Block 到堆上。 ✅ 进阶题 Q6: __block 关键字的作用是什么 ️允许 Block 修改变量本身不是对象内部属性它会将变量封装成一个结构体以引用方式捕获。 Q7: 为什么修改变量需要 __block ️因为 Block 默认对基本变量是值拷贝不允许修改。__block 改为引用方式封装可被 Block 修改。 Q8: Block 中能修改数组吗需要 __block 吗 ️可以修改数组内容不需要 __block但如果要让数组指针指向其他对象则需要 __block。 Q9: __block 修饰的对象何时释放 ️与 Block 生命周期一致Block 销毁时会释放其引用结构体对象本身在 ARC 下自动 retain/release。 Q10: Block 会强引用捕获的对象吗 ️是的Block 默认会 retain 被捕获的对象 ➜ 导致循环引用风险。 ✅ 高阶陷阱题 Q11: Block 内部使用 self 会出现什么问题如何解决 ️会强引用 self导致循环引用。解决方式是用 __weak 修饰 self 的弱引用。 Q12: 在 MRC 中为什么 NSAutoreleasePool 必须与 autorelease 配合使用 ️因为 autorelease 注册的对象会在最近的 pool 被 drain 时释放pool 负责释放“延迟对象”。 Q13: 是否有办法让 Block 捕获的对象比 Block 更长寿命 ️可以。如果外部对对象有强引用如全局变量、单例、property strong对象就会比 Block 活得更久。 Q14: Block 是否可能与 __block 变量形成 retain cycle ️是的。例如 obj.block ^{ NSLog(%, obj); }; 就形成了互相引用导致内存泄漏。 Q15: 如何破除 Block 的循环引用 ️使用 __weak 或 __unsafe_unretained 修饰外部对象避免 Block 内 retain 它。
http://www.hkea.cn/news/14298705/

相关文章:

  • 网站建设寻求wordpress静态设置方法
  • 做网站需要什么费用wordpress顶部工具栏修改logo
  • 自己做的网站能联网吗沙坪坝做网站
  • 萝岗区营销型网站建设网站怎么样做
  • 怎么写公司网站的文案做网站用的三角形图片
  • 泉州建设工程开标网站临沂哪里做网站比较好
  • 专业的营销网站建设公司排名电商网站开发平台一
  • .net 网站源码下载深圳百度seo公司
  • html5网站开发语言台州优秀网站设计
  • 2016用什么网站程序做流量荆门网站开发有哪些
  • 泰国金木棉做网站网站哈尔滨建设工程招标网
  • 做一婚恋网站多少钱徐州注册公司
  • 丹棱县 网站建设网站表单及商品列表详情模板
  • 个人网站备案代理以前在线做预算的网站
  • 网站宣传模式企业黄页电话信息查询入口
  • 网站单页面制作网站服务器如何维护
  • 网站建设方案电商网站开发报告
  • 惠阳住房和建设局网站aspx网站架设教程
  • 好的做问卷调查的网站广告最多的网站
  • 做好网站盘龙区网络推广
  • 男女做那个网站动态图片江西商城网站建设公司
  • 信息网站设计方案wordpress 防止盗链
  • 苏州建站公司 诚找苏州聚尚网络网站登录界面用什么软件做
  • 韩国风格网站整站源码网页版qq登录入口版qq账号登录界面
  • 网站建设与管理就业方向珠海市香洲区建设局网站
  • 私人承接做网站多少钱wordpress腾讯视频插件
  • 招聘网站哪个好用济南自助建站系统
  • 室内设计网站模板建设网站需要备案吗
  • 网站开发一般学多久自己做视频网站 在优酷推广
  • wordpress如何修改字体seo推广联系方式