美文网首页
Swift 面试题(一)

Swift 面试题(一)

作者: Kare | 来源:发表于2018-05-15 07:57 被阅读17次
  1. 如何设置实时渲染?
@IBDesignable让Interface Bulider在特定视图上执行实时渲染
  1. 异步同步任务的区别?
`同步`:等待任务完成,一个接一个,顺可预测(Predictable Execution Order),通常情况在Main
`异步`:不分先后执行顺序完成任务,顺序不可预测(Unpredictable Order),通常在Background
  1. 什么是NSError对象?
    NSError有三部分组成,分别为 Domain Code UserInfor
    Domain是一个字符串,标记一个错误域
NSError(domain: <#String#>, code: <#Int#>, userInfo: <#[String : Any]?#>)
  1. 什么是Enum?
    enum 是一种类型,包含了相关的一组数据

  2. 为什么使用synchronized?
    保证在一定时间内,只有一个线程访问它

  3. strong, weak,copy 有什么不同?
    strong:引用计数会增加
    weak:不会增加引用计数
    Copy: 意味着我们在创建对象时复制该对象的值

  4. 什么是ABI?
    应用程序二进制接口

  5. 在Cocoa中有哪些常见的设计模式
    创造性:单例(Singleton)
    结构性: 适配器(Adapter)
    行为:观察者(Observer)

  6. Realm数据库的好处
    a. 开源的DB framework
    b. 快
    c. ios 安卓都可以使用

  7. Swift 优势是什么?
    a. 类型安全
    b. 闭包
    c. 速度快

  8. 什么是泛型?
    泛型可以让我们定义出灵活,且可重用的函数和类型,避免重复代码

  9. 解释 Swift 中的 lazy?
    lazy是 Swift 中的一个关键字,他可以延迟属性的初始化时间,知道用到这个属性时,才去加载它

  10. 解释什么是 defer?
    延迟执行,当你离开当前代码块,就会去执行

  11. KVC 和 KCO 的区别?
    KVC: 它是一种用间接方式访问类的属性的机制
    KVO: 它是一种观察者模式,被观察的对象如果有改变,观察者就会收到通知

  12. Gurad的好处?
    可以使语句变得更简洁,避免嵌套很多层,可以使用break,return提前退出

相关文章

网友评论

      本文标题:Swift 面试题(一)

      本文链接:https://www.haomeiwen.com/subject/ghzsdftx.html