1. Type '*' does not conform to protocol '*'
Type 'CDLoginViewController' does not conform to protocol 'IBaseView'
CDLoginViewController引用了协议IBaseView,但是没有实现里面的方法,实现即可
2. Swift 中闭包的循环引用问题
在objective-c时期,在使用block的时候不得不考虑block的循环引用问题。当时采取的措施就是将循环引用的一方弱化,比如:
__weak typeof(self) wSelf = self;
在Swift中的闭包中也存在同样的问题,其实大致思路是一致的,我们可以使用unowned 关键字。
3. swift在运行真机时报错的问题
a.可能是由于安装了cocoaPods的原因,解决办法,点击项目 》Build Phases》点击+添加Copy Files 》 添加Pods.framework
3. 链接一条比较实用的bug收集:http://blog.youkuaiyun.com/qq_30513483/article/details/52983819
4. Use of instance member '*' on type '*'
在对应的方法前面加上static即可
5. unexpectedly found nil while unwrapping an optional value
在对数组初始化时直接添加的模型数组,每个模型数组中有一个图片属性,因为自己疏忽,有一个图片名称弄错了,导致初始化的是一个空值,直接报错,下次要注意了。可以考虑的排查方法,将数组中的模型全部注释了然后一个个打开,看看是哪个模型出现问题。
6. Swift项目应用命名时不要使用“.”,否则在使用应用程序名时可能会出现各种问题
// swift获取类名主要有以下方式:
deinit {
// 返回内部类名
print("内部类名deinit: \(object_getClassName(self))")
// 返回应用程序名+类名
print("应用程序名+类名deinit: \(NSStringFromClass(type(of: self)))")
// 返回应用程序名+类名,并去掉应用程序名
// print("deinit: \(NSStringFromClass(type(of: self)).componentsSeparatedByString(".").last!)")
print("deinit: \(NSStringFromClass(type(of: self)).components(separatedBy: ".").last!)")
// 返回应用程序名+类名+内存地址
print("deinit: \(self)")
// 返回应用程序名+类名+内存地址
print("deinit: \(self.description)")
// 返回类名
print("deinit: \(type(of: self))")
}