笔试时间 30分钟
一、Objective-C基础部分
- Objective-C是一门面向对象语言,那么面向对象的3要素是什么?
- ARC为什么可以自动管理内存?在哪些情况下ARC无效?
- 如何解决UITableView滑动卡顿的问题?
- 自己实现的最有成就感的一个自定义控件是什么,简单介绍下亮点在哪里?核心实现逻辑是什么?
- 在A页面中,点击按钮跳转到B页面,B页面在用户操作后生成了一些数据,数据要回传A页面。回传数据有几种方案?
- 平时用坐标布局还是AutoLayout自动布局,有何优劣?
- 数据库表结构升级有哪几种方案?
- iOS系统中你用过哪几种持久化存储方式,讲讲它们的适用场景。
- 风格纠错。如下所示代码,有哪几处风格你觉得有问题,请圈出。
二、Swift基础部分
- String和String?有什么区别?
- 有以下swift代码
let str1: String? = "123"
let str2: String! = "456"
let str3 = str1 ?? str2
请问str3是什么类型的? - 现在有一个实体类如下所示,请问如何实现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 {
}
}
- guard关键字有何用?if let有何用?if let … where 有何用?
- 列举switch的case支持的数据类型。
- 说说Swift中struct、enum、class分别是什么拷贝类型。
- Swift代码行末需要以分号结尾吗?
- 定义一个Swift闭包。
- 定义一个Swift循环。
三、进阶部分
- 使用block时什么情况会发生循环引用,如何解决?在调用诸如UIView的动画block时,是否需要注意循环引用?
- 如果在一个viewDidLoad()中,定义了一个定时器
NSTimer.scheduledTimerWithTimeInterval(2.0, target: self, selector: #selector(handle2SecondTimer:), userInfo: nil, repeats: true)
那么定时器对于ViewController实例的正常销毁是否会有影响?如果有影响,有何影响、如何解决? - 我们现在做的是社交类应用,拥有聊天功能,用户跟每一个好友之间,如果聊过天都会生成一个会话对象,且需要持久化存储。那么问题来了,如果有若干个子线程和一个主线程都需要访问会话对象数组,应如何实现多线程同步?有几种方法?简单说说效率如何?
网友评论