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

做阿里巴巴网站找谁工商信息查询官网

做阿里巴巴网站找谁,工商信息查询官网,php用什么工具做网站,wordpress页面移动端以下是对我们这整段关于 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/14258768/

相关文章:

  • 吉林省城乡住房建设厅网站阜阳网站建设
  • 网站如何提升流量东莞什么平台好做
  • 网站内容管理系统怎么用响应式网站建设的未来发展
  • 医疗卫生网站前置审批龙华建网站公司
  • 石家庄建站平台杭州市在建工程项目
  • 嘉定网站设计gta5网站建设中什么意思
  • 制作网站需要怎么做的青岛seo计费
  • 水利网站建设高端建筑物图片
  • 国内打开google网页的方法移动端网站怎么做优化
  • 芜湖公司做网站济南公众平台网站建设
  • 建设网站的模板技术支持 湖州网站建设
  • 上海阿里巴巴网站建设做外贸自己的公司网站
  • 吉安哪家网站建设公司好服务器怎样做网站呢
  • 旅游预定型网站建设福州牛蛙 网站建设
  • iis 编辑网站绑定做关键词排名卖网站
  • 南昌企业网站建设费用济南网站价格
  • 都江堰建设局网站常用的网站开发设计语言
  • 北京一度网站建设苏州app定制
  • 红河学院网站建设工程机械网站模板
  • 云南城市建设职业学院网站wordpress化妆品主题
  • 网站建设微信运营推广浙江沉船事故最新消息
  • 焦作 做 网站旅游网站品牌建设
  • 滁州建设网站东昌府聊城做网站费用
  • 洛阳网站建设价格域名如何注册?
  • 海口网站开发山东宏福建设集团有限公司网站
  • 网站建设的会计科目广东企业网站建设公司
  • HTMT超链接网站怎么做tiktok无货源跨境电商怎么做
  • 高端的咨询行业网站制作wordpress file upload
  • 餐饮营销网站建设php设计什么网站建设
  • 做宣传语的网站企业管理课程有哪些