2019iOS面试题出炉

2019面试题

1.swif与OC的区别

  • swift没有地址指针的概念
  • 泛型
  • 类型严谨对比OC的动态绑定

2.编译连接

  • id和instancetype的区别
  • instancetype只能返回值编译时判断真实类型,不符合发警告
  • 特殊情况:关联类型返回方法如类方法alloc或者new开头实例方法中,以autorelease,init,retain,或self开头

3.synthesize & dynamic

1、通过@synthesize指令告诉编译器在编译期间产生getter/setter方法
2、通过@dynamic指令,无法自己实现方法。
有些存取是在运行时动态创建的,如在CoreData的NSManageObject类。

4.在项目开发中常用的工具有哪些

  • instrument
  • beyondCompare
  • git

5.UlTableView & UlCollection

  • UlCollectionView是iOS6新引进的API,用于展示集合视图,布局更加灵活,其用法类似于UITableView。
  • 而UICollectionView、UlCollectionViewCell与UITableView、UITableViewCell在用法上有相似的也有不同的,下面是一些基本的使用方法:对UITableView,仅需要UITableViewDateSource,UITableViewDelegate这两个协议
  • 使用UlCollectionView需要实现:UICollectionViewDataSource,UlCollectionViewDelegate,
    UlCollectionViewDelegateFlowLayout这三个协议.
  • 这是因为UlCollectionViewDelegateFlowLayout实际上是UCollectionViewDelegate的一个子协议,它继承了
    UlCollectionViewDelegate,它的作用是提供一些定义UlCollectionView布局模式的函数

6.NSProxy & NSObject

  • NSObject协议组对所有的Object-C下的objects都生效。如果objects遵从该协议,就会被看作是first-class(一级类)。另外,遵从该协议的objects的retain、release、autorelease等方法也会服从objects的管理和在Foundation中定义的释放方法。一些容器中的对象也可以管理这些objects,比如说NSArray和NSDictionary定义的对象,Cocoa的根类也该遵循该协议,所以所有集成NSObject的objects都有遵循该协议的特性。
  • NSProxy:NSProxy是一个虚基类,它为一些表现像其他对象替身或者并不存在的对象定义一套API。一般发送给代理的消息被转发给一个真实的对象或者代理本身load(或者将本身转换成)一个真实的对象。NSProxy的基类可以被用来透明的转发消息或者耗费巨大的对象的lazy初始化。

7.Object & Swift

  • Obejective-C复杂的语法,更加简单易用、有未来,让许多开发者心动不已.
  • 苹果宣称Swift的特点是:快速、现代、安全、互动,而且明显优于Objective-C语言
    可以使用现有的Cocoa和Cocoa Touch框架,Swift取消了Objective C的指针及其他不安全访问的使用
  • 舍弃Objective C早期应用Smalltalk的语法,全面改为句点表示法提供了类似Java的名字空间(namespace)、泛型(generic)、运算对象重载(operator overloading) Swift 被简单的形容为“没有C的Objective-C” (Objective- C without theC)为苹果开发工具带来了Xcode-Playgrounds功能,该功能提供强大的互动效果,能让Swift源代码在撰写过程中实时显示出其运行结果;
  • 基于C和Objective-C,而却没有C的一些兼容约束; 采用了安全的编程模式;界面基于Cocoa和Cocoa Touch框架;保留Smaltalk的动态特性

8.传值通知&推送通知(本地&远程)

传值通知:类似通知,代理,Block实现值得传递

推送通知:推送到用户手机对应的App上(主要是不再前台的情况)本地通知。

local notification 用于基于时间行为的通知,比如有关日历或者todo列表的应用。另外,应用如果子啊后台执行,iOS允许它在受限的时间内运行,它也会发现本地通知有用。比如,一个应用,在后台运行,向应用的服务器端获取消息,当消息到达时,比如下载更新版本的消息,通知本地通知机制通知用户。

本地通知是UILocalNotification的实例,主要有三类属性:

  • scheduled time,时间周期,用来指定iOS系统发送通知的8期和时间;
  • notification type,通知类型,包括警告信息、动作按钮的标题、应用图标上的badge