返回

程序员面试中神秘的OC底层探秘,持续更新,珍藏版!

IOS

  1. OC底层魅力无穷

揭秘:

对于OC来说,类和对象,这是大家都熟知的两个概念。但是,如果在面试的时候,面试官问你:“程序员眼中,OC中哪些东西的底层实现比较神奇?”,你会作何回答呢?

大多数程序员都会提到三个关键词:“self”、“super”以及“类方法”。在OC中,程序员是无法直接通过写代码来实现这三个东西的,也就是说,这三个东西的底层实现全都是由OC的运行时系统来实现的。

举个例子来说,当我们使用“self”的时候,实际上,运行时系统会给我们创建一个OC对象,然后把这个OC对象的地址放在“self”的这个变量中。同理,在调用“super”的时候,运行时系统会创建父类的OC对象,然后把父类OC对象的地址放入到“self”的变量中。

解析:

如果你想对“self”、“super”和“类方法”的底层实现有更深入的了解,我强烈建议你去看看《OC运行时编程》这本书,这本书对这些底层知识点的讲解非常详细。

“self”这个东西的底层实现相对比较简单,但是“super”的底层实现却要复杂得多。如果面试官问你:“‘super’的底层是如何实现的?”,大多数程序员都会直接愣住。

其实,“super”的底层实现和“self”差不多。先创建OC对象,再把对象地址放入“self”中。只不过,“super”的创建对象的时候,用的不是 OC 类的方法,而是用的 C 语言方法。

而“类方法”的底层实现更加复杂,如果你想知道更多,可以参考《OC运行时编程》这本书。

2. 神秘的runtime

揭秘:

作为苹果公司的原生编程语言,Objective-C和Swift的底层都是基于C语言的,我们可以用Objective-C来调用C语言的函数。这意味着,我们可以在OC中直接使用C语言的语法来对OC的语言特性进行自定义。

说白了,Runtime就是一段C语言代码,它可以动态地创建和修改OC的类和对象。

解析:

了解Runtime,对我们使用OC进行开发来说,是有很大的帮助的。例如,我们可以在运行时动态地创建OC类,也可以在运行时动态地添加属性和方法到OC类中。这些功能在很多开源框架中都有所体现。

例如,Masonry这个开源框架,它就是利用Runtime来实现对UIView布局的管理的。

如果你想学习Runtime,可以先从《OC运行时编程》这本书入手。这本书对Runtime的讲解非常详细,看完这本书之后,你就可以对Runtime有一个系统的了解了。

3. OC中的三剑客

揭秘:

在OC中,有一个非常著名的三剑客,它们分别是:“对象”、“类”和“消息”。

  • 对象 :OC中的对象,是指根据类创建出来的一个具体的存在。
  • :OC中的类,是指一组具有共同特征的对象的抽象概念。
  • 消息 :OC中的消息,是指对象和对象之间进行通信的一种方式。

解析:

对于面试官来说,“对象”、“类”和“消息”这三个概念是考察OC程序员基础知识的必备问题。如果你想在OC面试中脱颖而出,你一定要对这三个概念有深刻的理解。

当然,面试官也有可能对“对象”、“类”和“消息”进行更深入的考察,比如:“OC中对象是通过什么方式创建的?”、“OC中类的内存布局是什么样的?”、“OC中消息的发送机制是什么?”。

如果你想对“对象”、“类”和“消息”有更深入的了解,可以参考《OC基础教程》这本书。这本书对这些底层知识点的讲解非常详细,看完这本书之后,你就可以对这些概念有一个系统的了解了。

4. OC底层,面试的制胜法宝

揭秘:

在OC面试中,底层知识点是面试官考察的一个重点。因为底层知识点不仅考察了程序员的基础知识,还考察了程序员的学习能力和思维能力。

如果你想在OC面试中脱颖而出,你一定要对OC底层知识点有深入的了解。你可以通过阅读相关书籍、观看视频教程或参加培训课程来学习OC底层知识点。

解析:

学习OC底层知识点,是一个循序渐进的过程。如果你想学好OC底层知识点,你一定要有足够的耐心和毅力。

刚开始学习OC底层知识点的时候,你可能会觉得很枯燥。但是,只要你坚持学习,你就会发现,OC底层知识点其实并没有那么难。

如果你在学习OC底层知识点的过程中遇到任何问题,可以随时在网上寻求帮助。有很多热心的程序员愿意帮助你解决问题。

希望这篇文章对你的OC底层面试有所帮助!