一、swift 类和结构体的区别 作为函数参数传递两者的区别 值类型传递会copy?每次传递都会复制?对性能消耗有没有影响?
区别:
1.类属于引用类型,结构体属于值类型
2.类允许被继承,结构体不允许被继承
3.类中的每一个成员变量都必须初始化,否则编译器会报错,而结构体不需要,编译器会自动生成init函数,给变量默认值
二、swift面向协议的理解?
三、block造成循环引用的原因?解决方法?
四、block的类型?在堆上?在栈上?内存结构上的区别?block创建的时候是在堆上吗?copy到堆上的作用?
五、layoutSubView的调用时机有哪些?旋转屏幕会不会触发?init方法会触发不?layoutSubviews的作用?
layoutSubView的调用情况:
- init初始化不会触发调用
- addsubview会触发调用
- 改变view和width和height的时候会触发调用
- 一个UISrollview滚动会触发调用
- 旋转screen会触发调用
- 改变一个UIView大小的时候会触发superView和layoutSubviews实践
- 直接调用setLayoutSubViews会触发调用
- viewWillAppear会调用
- viewDidAppear会调用