iOS 部分面试题

作者: 广益散人 | 来源:发表于2021-06-17 10:05 被阅读0次

    收集了一份金山的部分面试题,供大家学习参考,祝愿大家早日入坑。
    1、frame和bounds的区别。
    答:frame是每个view必备的属性,代表的是当前视图的位置和大小,没有设置他,当前视图是看不到的。位置需要有参照物才能确定,frame就是参照父视图来进行布局。
    bounds是每个View都有的属性,这个属性我们一般不进行设置,他同样代表位置和大小,bounds的位置代表的是子视图看待当前视图左上角的位置;bounds的大小代表当前视图的大小。
    简而言之,frame相对父视图布局,bounds相对于本身的布局。
    2、init方法和initwithframe的区别,谁先调用谁?
    答:init方法只能初始化对象,不能设置特定的frame值,initwithframe既能初始化,也能设置frame值,init方法内部调用了initwithframe(0,0,0,0)。
    3、isa指针,指向哪里?
    答:每个对象都有一个isa指针,面向对象中每一个对象都必须依赖一个类来创建,因此对象的isa指针就指向对象所属的类。实例对象的isa指针指向了类对象,类对象的isa指针指向元类。详细答案可以百度一下,讲解的很透彻。
    4、AFN做了些什么工作,请求头和返回的结果默认是什么类型
    答:AFN主要包含了以下几个功能模块:
    网络通信模块(AFURLSessionManager、AFHTTPSessionManger)
    网络状态监听模块(Reachability)
    网络通信安全策略模块(Security)
    网络通信信息序列化/反序列化模块(Serialization)
    对于iOS UIKit库的扩展(UIKit)
    请求头和返回的结果默认类型都是NSData类型
    5、masonry的点语法是怎么实现的。
    链式赋值的实现原理:block的回调获取参数内部使用,所有的set方法返回
    MASConstraint实例,可以通过'.语法'继续访问。此问题可以自行百度加阅读
    源代码能有更清晰的了解。
    6、数据持久化有哪些方案
    答:sqlite、NSUserDefaults、plist表,CoreData,FMDB,归档等等。
    以上是比较粗略浅显的答案,可能有错,欢迎指正,共同学习!

    相关文章

      网友评论

        本文标题:iOS 部分面试题

        本文链接:https://www.haomeiwen.com/subject/spwqyltx.html