- 如何设置实时渲染?
@IBDesignable让Interface Bulider在特定视图上执行实时渲染
复制代码
- 异步同步任务的区别?
`同步`:等待任务完成,一个接一个,顺可预测(Predictable Execution Order),通常情况在Main
`异步`:不分先后执行顺序完成任务,顺序不可预测(Unpredictable Order),通常在Background
复制代码
- 什么是NSError对象? NSError有三部分组成,分别为
Domain
Code
UserInfor
Domain是一个字符串,标记一个错误域
NSError(domain: <#String#>, code: <#Int#>, userInfo: <#[String : Any]?#>)
复制代码
-
什么是Enum?
enum
是一种类型,包含了相关的一组数据 -
为什么使用synchronized? 保证在一定时间内,只有一个线程访问它
-
strong, weak,copy 有什么不同?
strong
:引用计数会增加weak
:不会增加引用计数Copy
: 意味着我们在创建对象时复制该对象的值 -
什么是ABI? 应用程序二进制接口
-
在Cocoa中有哪些常见的设计模式 创造性:单例(Singleton) 结构性: 适配器(Adapter) 行为:观察者(Observer)
-
Realm数据库的好处 a. 开源的DB framework b. 快 c. ios 安卓都可以使用
-
Swift 优势是什么? a. 类型安全 b. 闭包 c. 速度快
-
什么是泛型? 泛型可以让我们定义出灵活,且可重用的函数和类型,避免重复代码
-
解释 Swift 中的 lazy? lazy是 Swift 中的一个关键字,他可以延迟属性的初始化时间,知道用到这个属性时,才去加载它
-
解释什么是 defer? 延迟执行,当你离开当前代码块,就会去执行
-
KVC 和 KCO 的区别? KVC: 它是一种用间接方式访问类的属性的机制 KVO: 它是一种观察者模式,被观察的对象如果有改变,观察者就会收到通知
-
Gurad的好处? 可以使语句变得更简洁,避免嵌套很多层,可以使用break,return提前退出