2015-01-15 55 views
-3

展開一個可選值這裏是我的代碼:致命錯誤:意外發現零,而在NSDateFormatter

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()! 

我得到致命錯誤:意外發現零而展開的可選值。我在4日,5日,8日,9日,10日和11日發現了這個錯誤。我開始從Objective-C轉移到Swift,所以我需要一些幫助。

+1

@Zaph:你絕對不對。首先,它被稱爲** implicit unwrapping **。而你的評論是無意義的,因爲兩個可選類型都被*用來代表'nil'。 –

+0

第8-11行是隱式解包? – zaph

回答

0

您的格式化程序變量爲nil,必須在使用之前創建NSDateFormatter的實例。更改這些行:

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

到:

2. var mFormatter: NSDateFormatter = NSDateFormatter() 
3. var mFormatter: NSDateFormatter = NSDateFormatter() 

<type>!ImplicitlyUnwrappedOptional<type>語法糖。你可以閱讀更多有關他們here

相關問題