初始化返回为nil

Swift 中默认的初始化方法是不能写 return 语句来返回值的,也就是说我们没有机会初始化一个 optional的值

// Swift中的初始化方法中默认是不能返回nil的,但是在init后面加一个? --> init?就可以的,例如

let url =URL(string:"http://www.baidu.com")

// public init?(string: String)

extension Int{

init?(fromString:String){

self=0

var digit = fromString.characters.count-1// 2

for c in fromString.characters{

var number =0

if letn =Int(String(c)) {

number = n

}else{

switch c {

case"一": number =1

case"二": number =2

case"三": number =3

case"四": number =4

case"五": number =5

case"六": number =6

case"七": number =7

case"八": number =8

case"九": number =9

case"零": number =0

default:returnnil

}

}

self=self+ number *Int(pow(10,Double(digit)))

digit = digit -1

}

}

}

print(Int(fromString:"123"))// "Optional(123)\n"

你可能感兴趣的:(初始化返回为nil)