[Swift 3.0]消除一些写法的警告⚠️

2016-09-30  本文已影响3855人  流火绯瞳

1. popViewController

在使用导航pop到上一个界面的时候遇到一个警告,我的pop写法如下

self.addLeftButton(imageName: "houtui", actionBlock: {(button) in
            
            self.navigationController?.popViewController(animated: true)
        })

和OC的很类似,但是会有如下的一个警告:

 Expression of type 'UIViewController?' is unused

这是因为** popViewController方法默认返回了一个 UIViewController**,所以才会出现这个警告,改为如下写法即可:

self.addLeftButton(imageName: "houtui", actionBlock: {(button) in
            
            _ = self.navigationController?.popViewController(animated: true)
        })

把这个返回值接收一下

2. if cell == nil

在使用自定义cell的时候,使用这个判断会产生一个警告,cell相关的写法如下:

var cell = tableView.dequeueReusableCell(withIdentifier: "cellID") as! LZDetailTableViewCell
        if cell == nil {
            cell = LZDetailTableViewCell.init(style: .default, reuseIdentifier: "cellID")
        }

return cell

产生的警告为:

Comparing non-optional value of type 'LZDetailTableViewCell' to nil always returns false

这是因为在上面的as进行转换的时候,已经进行了解包,所以这里的cell肯定不会是nil,只要改为如下写法,即可:

var cell = tableView.dequeueReusableCell(withIdentifier: "cellID") as? LZDetailTableViewCell
        if cell == nil {
            cell = LZDetailTableViewCell.init(style: .default, reuseIdentifier: "cellID")
        }

return cell!

只是将as!改为as?.

上一篇下一篇

猜你喜欢

热点阅读