当前位置:首页 > 移动端开发 > 正文内容

iOS面试题-load 和 initlize的差异

邻居的猫1个月前 (12-09)移动端开发1619

+load+initialize是两个与类的加载和初始化相关的特别办法。它们在类的生命周期中的效果和调用机遇有显着的差异。

+load 办法

  • 调用机遇:+load在类初始加载进内存时调用,这一般发生在程序发动的时分,一切类和分类(Category)的+load办法在运用程序的生命周期中只会被调用一次。
  • 调用次序:首要调用类的+load办法,然后调用分类的+load办法。假如有多个分类都完成了+load办法,它们的调用次序是不确定的。
  • 承继性:+load办法不会被主动承继,即便子类没有完成+load办法,父类的+load办法也会被调用。假如子类完成了+load办法,那么父类和子类的+load办法都会被调用。
  • 线程安全:+load办法是线程安全的,Objective-C运行时确保+load办法在多线程环境下安全履行。
  • 运用场景:+load一般用于设置大局状况、注册类、交流办法完成(Method Swizzling)等,不主张在+load中进行耗时操作,由于它会影响运用发动时刻。

+initialize 办法

  • 调用机遇:+initialize在类或其子类的第一个办法被调用之前调用,它是懒加载的,只要在类实践被运用时才会被调用。
  • 调用次序:假如子类没有完成+initialize办法,那么在子类的第一个办法被调用之前,父类的+initialize办法会被调用。假如子类完成了+initialize办法,那么父类的办法不会被调用,除非子类的+initialize办法中显式调用了[super initialize]
  • 承继性:+initialize办法会被主动承继,假如子类没有供给+initialize的完成,那么会调用父类的完成。
  • 线程安全:+initialize办法也是线程安全的,Objective-C运行时确保+initialize办法在多线程环境下安全履行,并且在每个类中只会被调用一次。
  • 运用场景:+initialize合适用于履行类的懒初始化,如初始化大局变量、修正静态数据结构等。

留意事项

  • 防止在+load+initialize中编写杂乱或耗时的初始化代码,这可能会影响运用的发动功能。
  • +load+initialize都不应该依赖于其他类的初始化代码,由于无法确保其他类的初始化次序。
  • 假如在+initialize中运用了多线程,要特别留意线程安全和死锁问题,虽然+initialize自身是线程安全的。
  • +initialize中拜访静态变量时,假如这些变量在其他当地被修正,需求留意同步问题。

其他

已然说这两个是特别办法,那么有哪些非特别的办法呢:

  1. 实例办法
    -init: 实例的初始化办法,一般在创立目标后手动调用或在结构器中调用。
    -dealloc: 实例被开释时调用的办法,用于履行整理作业。
    -description: 回来目标描绘的字符串,一般用于调试。
    以及其他自定义的实例办法,用于履行目标的详细行为。
  2. 类办法
    +new: 类办法,用于创立类的新实例,它会调用alloc和init。
    +someClassMethod: 自定义的类办法,用于履行与类相关的操作,而不是与特定实例相关的操作。

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=485

分享给朋友:

“iOS面试题-load 和 initlize的差异” 的相关文章

鸿蒙之,引领未来智能生态的操作系统

华为鸿蒙系统(HarmonyOS)是华为公司于2019年8月9日在东莞举行的华为开发者大会上正式发布的面向全场n2. 微内核架构:鸿蒙系统采用微内核设计,核心功能简化,增强了系统的安全性和稳定性。3. 分布式架构:鸿蒙系统通过分布式架构实现了跨终端无缝协同体验,支持多种终端设备之间的硬件互助和资源...

华为手机开发者模式,开启、功能与注意事项

华为手机开发者模式是一种高级权限模式,允许用户进行一些系统级别的设置和调试操作。以下是进入华为手机开发者模式的详细步骤: 开启方法1. 进入设置菜单: 在手机主屏幕上找到并点击“设置”图标,或者从底部工具栏中找到“设置”图标。2. 找到“关于手机”: 在设置菜单中,向下滚动并点击“关于手...

鸿蒙神尊异界游,异世之九转鸿蒙至尊诀笔趣阁

鸿蒙神尊异界游,异世之九转鸿蒙至尊诀笔趣阁

《鸿蒙神尊异界游》是一部连载于17K小说网的玄幻奇幻类小说,作者是傲气杀神。故事讲述了宅男陈晓云因出事故意外身亡,因骂了几句老天而被一道神雷劈中,穿越到了鸿蒙未开、混沌未出的时代。他在这个陌生的世界中经历了一系列奇幻冒险,逐渐成长为一代神尊。这部小说可以在多个平台上阅读,例如17K小说网、苦读书、烽...

鸿蒙合作伙伴名单,共73家,生态建设全面开花

鸿蒙合作伙伴名单,共73家,生态建设全面开花

1. 官方公布的“鸿蒙OS”合作伙伴(36家): 产品类伙伴:美的、九阳、苏泊尔、老板、帅康、海雀科技、方太、盯盯拍、360、新日电动车、中国移动、极米、创维、舒华体育、佑美科技、Tissot天梭、讯飞听见、看到科技、厦门汉印电子、六点作业、外研通。 技术类伙伴:瑞昱半导体、博流智能、翱...

flutter学习

flutter学习

Flutter 是一个由 Google 开发的开源框架,用于创建跨平台的移动应用程序。它允许开发者使用单一代码库,就可以为 iOS、Android、Web 和桌面平台(如 Windows、macOS 和 Linux)创建应用程序。Flutter 使用 Dart 语言进行编程,Dart 是一种简洁、高...

鸿蒙血尊txt下载,鸿蒙血尊txt下载,探索鸿蒙世界的热血传奇

鸿蒙血尊txt下载,鸿蒙血尊txt下载,探索鸿蒙世界的热血传奇

你可以在以下网站下载《鸿蒙血尊》的TXT版本:1. 该网站提供《鸿蒙血尊》TXT全集下载,书籍大小为解压后3.84 MB,更新时间为2011年12月27日。2. 提供了《鸿蒙血尊》txt全集小说附件,已上传到百度网盘,可以点击免费下载。3. 同样提供了《鸿蒙血尊》txt全集小说附件,已上...