1、swift是静态语言,有类型推断,OC是动态语言 swift作为强类型检查的静态编译语言,可以加载动态链接库,连接动态模块,也支持面向协议编程,同时还支持函数式编程,OC面向对象编程。
2、swift的协议不仅可以被类实现,也可以被struct和enum实现
3、OC中的常量(const)是编译期决定的,Swift中的常量(let)是运行时确定的
4、访问权限由大到小 依次为:open,public,internal(默认),fileprivate,private
final关键字可以在class、func和var前修饰,表示不能被继承或重写,否则编译器会报错, 可以将类或者类中的部分实现保护起来,从而避免子类破坏。
5、Map、FlatMap、Filter、Reduce
6、String是结构体,NSString是类,结构体是值类型,值类型被赋予给一个变量、常量或者被传递给一个函数的时候,其值会被拷贝。
7、[unowned self] 和weak 区别 ?
[unowned self] 如果回调在self释放后再调用 会crash unowned 引用的对象释放后 仍会对已经释放的对象保持一个“无效的”引用 它不是optional 不会指向nil 如果访问成员属性会崩溃 weak标记的被释放后会置为nil(被标记weak的变量一定需要是optional)