可选类型' Bool'不能用作布尔值;测试'!= nil'代替

时间:2015-07-17 05:19:50

标签: ios xcode swift boolean optional

 override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject?) {
          if (segue && segue!.identifier == "showDetail"){  //this line has error
            var selectedIndexPath : NSIndexPath = self.tableView.indexPathForSelectedRow()
            var detailViewController : DetailViewController = segue!.destinationViewController as DetailViewController
            detailViewController.toDoData = toDoItems.objectAtIndex(selectedIndexPath.row) as NSDictionary
        }

我非常新,可能是非常简单的错误,但我需要很好地解释答案。 我有Xcode错误

  

可选类型' Bool'不能用作布尔值;测试'!= nil'   代替

代表第二行segue && segue!.identifier

我正在观看youtube视频,以按照待办事项列表的步骤进行操作。

2 个答案:

答案 0 :(得分:0)

override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject?) {
      if (segue != nil && segue!.identifier == "showDetail"){  //this line has error
        var selectedIndexPath : NSIndexPath = self.tableView.indexPathForSelectedRow()
        var detailViewController : DetailViewController = segue!.destinationViewController as DetailViewController
        detailViewController.toDoData = toDoItems.objectAtIndex(selectedIndexPath.row) as NSDictionary
    }

答案 1 :(得分:-1)

仔细阅读信息。

您有一个可选值,并且您将其用作Bool值。该消息告诉您不能这样做。拿一本关于Swift的书,阅读如何检查一个可选项是否为零。 (提示:许多在C或C ++中不好的做法在Swift中都是非法的)。