1、swift调用OC的方法,如果OC方法参数是自定义的类,同时需要把自定义的类导入到桥文件中,否则无法调用。
2、OC调用swift属性,需要在属性前面加上@Objc,否则无法调用
3、在OC的pch文件中导入#import“项目名-Swift.h”,主意Swift大写开头,如果项目名中有-,需要改写成_。比如MyProject-iOS改为:MyProject_iOS。
4、在构造方法里调用父类的属性时,注意他们的安全规则。
错误: `self` used before super.init call
在 init 中 有四个阶段的安全检查, 这里违背了第四个检查
//初始化 编译的过程的四个安全检查
// 1.在调用父类初始化之前 必须给子类特有的属性设置初始值, 只有在类的所有存储属性状态都明确后, 这个对象才能被初始化
// 2.先调用父类的初始化方法, 再 给从父类那继承来的属性初始化值, 不然这些属性值 会被父类的初始化方法覆盖
// 3. convenience必须先调用designated初始化方法,再给属性初始值.不然设置的属性初始值会被designated初始化方法覆盖
// 4.在第一阶段完成之前, 不能调用实类方法, 不能读取属性值, 不能引用self
错误: Property not initialized at super.init call
他违反了 安全检查第1条.