美文网首页
面试准备——iOS开发基础

面试准备——iOS开发基础

作者: tmachc | 来源:发表于2018-04-13 18:01 被阅读3次

    APP相关

    如何添加自定义字体到工程

    文件格式一般为ttfttcotf
    先将字体文件加到项目中,然后在工程plist中添加一项Fonts provided by application,这是个数组,然后添加一项,string类型,值为字体文件的文件名,如黑体.ttf
    在程序中可以打印[UIFont familyNames],检查是否添加成功,并确认字体名称。
    使用方法:[UIFont fontWithName:@"Heit" size:17]

    如何制作一个静态库/动态库,他们的区别是什么?

    • 静态库:以.a.framework为文件后缀名。
    • 动态库:以.tbd(之前叫.dylib)和.framework为文件后缀名。

    区别:

    • 静态库:链接时会被完整的复制到可执行文件中,被多次使用就有多份拷贝。
    • 动态库:链接时不复制,程序运行时由系统动态加载到内存,系统只加载一次,多个程序共用(如系统的UIKit.framework等),节省内存。
      注:苹果不让使用自己的动态库,否则审核就无法通过。
      [1]

    Configuration中,debug和release的区别是什么?

    • debug为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,为开发人员提供强大的应用程序调试能力。
    • release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。
      [2]

    简单介绍下发送系统消息的机制(APNS)

    打开带推送功能的APP,在有网络的情况下会连接苹果推送服务器,连接过程中,APNS会验证device_token,连接成功后维持一个长连接;
    我们自己的服务器要推送消息时,把被推送的消息结合被推送设备的device_token一起打包发送给APNS服务器;
    APNS服务器将推送信息推送给指定device_token的设备;
    设备收到推送消息后通知我们的应用程序并显示和提示用户(声音、弹出框)
    [3]

    UI相关

    系统如何寻找到需要响应用户操作的那个Responder

    Hit-Test 机制[4]
    系统检测到手指触摸(Touch)操作时,将Touch 以UIEvent的方式加入UIApplication事件队列中。UIApplication从事件队列中取出最新的触摸事件进行分发传递到UIWindow进行处理。UIWindow 会通过hitTest:withEvent:方法寻找触碰点所在的视图,这个过程称之为hit-test view。

    UIApplication -> UIWindow -> Root View -> ··· -> subview
    

    找到之后,会形成响应者链,先由最低层的view来处理,处理不了传给下一响应者。
    3种情况无法响应
    1.userInteractionEnabled=NO;2.hidden=YES;3.alpha=0~0.01

    多屏幕尺寸的适配

    AutoLayout,Masonry

    UIButton的父类是什么?UILabel呢?

    UIControl, UIView

    push view controller 和 present view controller的区别

    push是navigationControl的一种方法,添加页面入栈
    present是任何页面都可以直接弹出,例如UIAlertControl

    描述下tableview cell的重用机制

    只创建屏幕最大数的cell,上面的cell完全移出屏幕,自动补到下面重用

    UIView的frame和bounds的区别是什么

    frame是对于superview的坐标系
    bounds是自身坐标系,subview会根据bounds来确定位置


    1. 参考自:https://www.jianshu.com/p/90f5ec723175

    2. 参考自:https://blog.csdn.net/m18510011124/article/details/54091347

    3. 参考自:https://blog.csdn.net/ryantang03/article/details/8482259

    4. 参考自:http://www.cocoachina.com/ios/20160630/16868.html

    相关文章

      网友评论

          本文标题:面试准备——iOS开发基础

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