美文网首页
[Swift 3.0]消除一些写法的警告⚠️

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

作者: 流火绯瞳 | 来源:发表于2016-09-30 16:58 被阅读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?.

    相关文章

      网友评论

          本文标题:[Swift 3.0]消除一些写法的警告⚠️

          本文链接:https://www.haomeiwen.com/subject/oamlyttx.html