IOS面试常见问题解答(2018年8月)第4部分

本文结束了本月的问题,下个月将有更多新问题。

Q1。 下面的代码片段是否正确并且不会产生编译器错误? 在B类中进行覆盖时,是否需要删除class关键字?

解决方案

是的,它是正确的并且可以正确编译,如果您在类B中的重写功能中删除了类关键字,则会抛出错误。

Q2。 在以下片段中,有两种情况
一种。 如果在func转换之前添加class关键字该怎么办呢?这意味着什么,它将进行编译?
b。 如果在func转换之前添加static关键字该怎么办呢。这意味着什么,它将进行编译?

解决方案

一种。 它将给出编译时错误

b。 它将完美编译

下一个问题涵盖了什么意思。

Q3。 Swift中的静态函数和类函数有什么区别?

解决方案 :结构和枚举的静态函数,以及用于类的类

其他一些区别是类函数是动态调度的,并且可以被子类覆盖。

Q4。 什么是“仅类协议”,您可以为其编写代码吗?

  解决方案 :通过将AnyObject协议添加到协议的继承列表中,可以将协议采用限制为类类型(而不是结构或枚举)。 

Q4。 编写通用Singelton类?

解决方案:符合Initializable协议的类在整个生命周期中将只有一个实例。

用例:

希望你喜欢这个解释。 如有其他疑问,请访问-iOS专家系列或访谈系列

  解决方案 :是否简单地将static用于结构和枚举,协议和类的静态函数? 
那是主要的区别。 其他一些区别是类函数是动态调度的,并且可以被子类覆盖。