[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?.