自Swift1.1开始,初始化init方法便有返回nil的能力。我们可以在init声明的时候在其后面加上一个 ? 或者 ! 来表示初始化失败时可能返回nil。
比如,给Int类添加一个将字符串初始化成数字的init方法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
extension Int {
init ?(fromString: String ) {
if let i = fromString.toInt() {
self = i
} else {
//提前返回
return nil
}
}
} //使用 let number1 = Int (fromString: "1234" ) //1234
let number2 = Int (fromString: "two" ) //nil
|