美文网首页iOS精品文章-面试iOS面试资料搜集iOS开发文集
给团队招聘iOS中级开发工程师拟的面试题

给团队招聘iOS中级开发工程师拟的面试题

作者: 电一闪 | 来源:发表于2017-02-13 11:31 被阅读171次

    笔试时间 30分钟
    一、Objective-C基础部分

    1. Objective-C是一门面向对象语言,那么面向对象的3要素是什么?
    2. ARC为什么可以自动管理内存?在哪些情况下ARC无效?
    3. 如何解决UITableView滑动卡顿的问题?
    4. 自己实现的最有成就感的一个自定义控件是什么,简单介绍下亮点在哪里?核心实现逻辑是什么?
    5. 在A页面中,点击按钮跳转到B页面,B页面在用户操作后生成了一些数据,数据要回传A页面。回传数据有几种方案?
    6. 平时用坐标布局还是AutoLayout自动布局,有何优劣?
    7. 数据库表结构升级有哪几种方案?
    8. iOS系统中你用过哪几种持久化存储方式,讲讲它们的适用场景。
    9. 风格纠错。如下所示代码,有哪几处风格你觉得有问题,请圈出。
    风格纠错

    二、Swift基础部分

    1. String和String?有什么区别?
    2. 有以下swift代码
      let str1: String? = "123"
      let str2: String! = "456"
      let str3 = str1 ?? str2
      请问str3是什么类型的?
    3. 现在有一个实体类如下所示,请问如何实现NSCopying协议。
    class UserEntity : NSObject {
        private var userName: NSString!
        private var headImageURLStr: NSString!
        init(userName: NSString, headImageURLStr: NSString) {
            super.init()
            self.userName = userName
            self.headImageURLStr = headImageURLStr
        }
        override init() {
            super.init()
        }
        func copyWithZone(zone: NSZone) -> AnyObject {
    
        }
    }
    
    1. guard关键字有何用?if let有何用?if let … where 有何用?
    2. 列举switch的case支持的数据类型。
    3. 说说Swift中struct、enum、class分别是什么拷贝类型。
    4. Swift代码行末需要以分号结尾吗?
    5. 定义一个Swift闭包。
    6. 定义一个Swift循环。

    三、进阶部分

    1. 使用block时什么情况会发生循环引用,如何解决?在调用诸如UIView的动画block时,是否需要注意循环引用?
    2. 如果在一个viewDidLoad()中,定义了一个定时器
      NSTimer.scheduledTimerWithTimeInterval(2.0, target: self, selector: #selector(handle2SecondTimer:), userInfo: nil, repeats: true)
      那么定时器对于ViewController实例的正常销毁是否会有影响?如果有影响,有何影响、如何解决?
    3. 我们现在做的是社交类应用,拥有聊天功能,用户跟每一个好友之间,如果聊过天都会生成一个会话对象,且需要持久化存储。那么问题来了,如果有若干个子线程和一个主线程都需要访问会话对象数组,应如何实现多线程同步?有几种方法?简单说说效率如何?

    相关文章

      网友评论

        本文标题:给团队招聘iOS中级开发工程师拟的面试题

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