22
2020
03

oc 系统对象的 copy 与 mutableCopy 方法

一、非集合类对象的copy与mutableCopy  在非集合类对象中,对不可变对象进行copy操作,是指针复制,mutableCopy操作是内容复制;  对可变对象进行copy和mutableCopy都是内容复制。用代码简单表示如下:    NSString *str = @"hello word!";    NSString *strCopy = [str copy] // 指针复制,strCopy与str的地址
22
2020
03

Category(类别)、 Extension(扩展)和继承的区别

区别:1. 分类有名字,类扩展没有分类名字,是一种特殊的分类。2. 分类只能扩展方法(属性仅仅是声明,并没真正实现),类扩展可以扩展属性、成员变量和方法。3. 继承可以增加,修改或者删除方法,并且可以增加属性。
22
2020
03

switf 2.0增加了一个新的关键字来实现递归枚举。enum List{ case Node(T,List)}什么关键字可以实现递归枚举?

indirect关键值可以允许递归枚举,代码如下:   enum List{ indirect case Cons{T,List)}
22
2020
03

怎么定义数组

var  arry:[String] = []  或  var arr:Array<String> = Array<String>()
22
2020
03

浅拷贝和深拷贝的区别?

浅拷贝:只复制指向对象的指针,而不复制引用对象本身。深拷贝:复制引用对象本身。内存中存在了两份独立对象本身,当修改A时,A_copy不变。
22
2020
03

runloop流程

22
2020
03

runtime是怎么实现的 ,那些地方用到了

obj_msgsend     黑魔法  tableview没数据时  添加一个view 字典转模型   模型转字典 class_propertyList   property_getName 自定义KVO   isa指针  NSKVONotifying_B
22
2020
03

frame 和 bounds 有什么不同?

frame指的是:该view在父view坐标系统中的位置和大小。(参照点是父view的坐标系统)bounds指的是:该view在本身坐标系统中的位置和大小。(参照点是屏幕坐标系统)
22
2020
03

MVVM

给MVC解耦 解重  双向绑定
22
2020
03

Alamofire怎么实现的

使用线程池  文件图片上传代码基于TCP/IP  网络提交基于URLSession.dataTask  URLRequest