- 如何设置实时渲染?
@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提前退出
网友评论