Swift 面试题(一)

  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提前退出

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值