Swift问题汇总~持续更新

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 关键字。

Swift问题汇总~持续更新_第1张图片

3. swift在运行真机时报错的问题

a.可能是由于安装了cocoaPods的原因,解决办法,点击项目 》Build Phases》点击+添加Copy Files 》 添加Pods.framework

Swift问题汇总~持续更新_第2张图片

Swift问题汇总~持续更新_第3张图片

Swift问题汇总~持续更新_第4张图片

3. 链接一条比较实用的bug收集:http://blog.csdn.net/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))")
    }





你可能感兴趣的:(Swift问题汇总~持续更新)