IOS面试常见问题解答(2018年8月)第4部分
本文结束了本月的问题,下个月将有更多新问题。
Q1。 下面的代码片段是否正确并且不会产生编译器错误? 在B类中进行覆盖时,是否需要删除class关键字?
解决方案 :
是的,它是正确的并且可以正确编译,如果您在类B中的重写功能中删除了类关键字,则会抛出错误。
Q2。 在以下片段中,有两种情况
一种。 如果在func转换之前添加class关键字该怎么办呢?这意味着什么,它将进行编译?
b。 如果在func转换之前添加static关键字该怎么办呢。这意味着什么,它将进行编译?
解决方案 :
一种。 它将给出编译时错误
b。 它将完美编译
下一个问题涵盖了什么意思。
Q3。 Swift中的静态函数和类函数有什么区别?
解决方案 :结构和枚举的静态函数,以及用于类的类
其他一些区别是类函数是动态调度的,并且可以被子类覆盖。
Q4。 什么是“仅类协议”,您可以为其编写代码吗?
解决方案 :通过将AnyObject协议添加到协议的继承列表中,可以将协议采用限制为类类型(而不是结构或枚举)。
Q4。 编写通用Singelton类?
解决方案:符合Initializable协议的类在整个生命周期中将只有一个实例。
用例:
希望你喜欢这个解释。 如有其他疑问,请访问-iOS专家系列或访谈系列
解决方案 :是否简单地将static用于结构和枚举,协议和类的静态函数?
那是主要的区别。 其他一些区别是类函数是动态调度的,并且可以被子类覆盖。