1.请说出 iOS 开发中常见的设计模式?
答案:iOS 开发中常见的设计模式包括:MVC(模型-视图-控制器)模式、MVVM(模型-视图-视图模型)模式、建造者模式、桥接模式、代理模式、装饰者模式等。
2.请说出UIViewController的生命周期
答案:
UIViewController的生命周期如下:
1.加载View(loadView)
2.设置View(viewDidLoad)
3.将要出现(viewWillAppear:)
4.已经出现(viewDidAppear:)
5.将要消失(viewWillDisappear:)
6.已经消失(viewDidDisappear:)
7.销毁View(viewDidUnload)
8.收到内存警告(didReceiveMemoryWarning)
3. Apple的Auto Layout系统能做什么?
Apple的Auto Layout系统是一种动态布局管理技术,它可以让开发者创造任何设计师想通过代码实现的复杂界面布局。它可以动态地改变界面布局,从而让开发者为不同尺寸和形状的设备提供更丰富的界面布局。它也可以适应系统和语言之间的变化,提供一种相对一致的布局方式,使整个应用程序可以保持一致性。
4. 如何使用iOS来实现多线程?
iOS通过GCD(Grand Central Dispatch)对多线程操作进行了封装,所以iOS可以实现多线程。我们可以使用GCD提供的多种函数,来实现多线程操作任务。比如我们可以使用 dispatch_async() 函数实现异步任务执行,或者使用 dispatch_sync() 函数实现同步任务执行,我们也可以使用 dispatch_group_async 函数把多个异步任务分组,最后使用 dispatch_group_notify()函数作为分组完成时的回调处理。在此基础上,iOS也提供了更多的增强工具,比如 NSOperation 和 NSOperationQueue 以及其子类。
5. iOS中如何实现本地推送?
实现本地推送有两种方法:
1.使用UILocalNotification类:UILocalNotification是一个表示本地通知的对象,可以使用此对象注册localNotification,即使当前应用程序不在前台,也能够弹出提醒用户。使用UILocalNotification可以在指定时间向用户发出本地推送。
2.使用UNUserNotificationCenter:UNUserNotificationCenter是iOS10之后提供的框架,用来处理以推送的形式发出的通知。同UILocalNotification一样,使用本框架也可实现本地推送,而且功能更加强大。