美文网首页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