Ios 致命错误:在NSDateFormatter上展开可选值时意外发现nil

Ios 致命错误:在NSDateFormatter上展开可选值时意外发现nil,ios,swift,Ios,Swift,这是我的密码: 1. let combinedFormatter = dateFormatter 2. var mFormatter: NSDateFormatter! 3. var hFormatter: NSDateFormatter! 4. mFormatter.dateFormat = "mm" 5. hFormatter.dateFormat = "hh" 6. let timeString: NSString = timeLabel.text 7. le

这是我的密码:

1.  let combinedFormatter = dateFormatter
2.  var mFormatter: NSDateFormatter!
3.  var hFormatter: NSDateFormatter!
4.  mFormatter.dateFormat = "mm"
5.  hFormatter.dateFormat = "hh"        
6.  let timeString: NSString = timeLabel.text
7.  let selectedString: NSString = dateFormatter.stringFromDate(selectedDate)
8.  var a1: Int = timeString.substringWithRange(NSMakeRange(0, 2)).toInt()!
9.  var a2: Int = selectedString.substringWithRange(NSMakeRange(0, 2)).toInt()!
10. var b1: Int = timeString.substringWithRange(NSMakeRange(3, 2)).toInt()!
11. var b2: Int = selectedString.substringWithRange(NSMakeRange(3, 2)).toInt()!

我遇到致命错误:在展开可选值时意外发现nil。我在第4行、第5行、第8行、第9行、第10行、第11行都犯了这个错误。我正开始从Objective-C转到Swift,所以我需要一些帮助。

您的格式化程序变量为零,必须先创建NSDateFormatter实例,然后才能使用。更改这些行:

2.  var mFormatter: NSDateFormatter!
3.  var hFormatter: NSDateFormatter!
致:


!!是隐式修饰的语法糖。你可以阅读更多关于他们的信息。

@Zaph:你完全错了。首先,它被称为隐式展开。你的评论是毫无意义的,因为两种可选类型都用来表示nil。第8-11行是隐式展开吗?
2.  var mFormatter: NSDateFormatter = NSDateFormatter()
3.  var mFormatter: NSDateFormatter = NSDateFormatter()