关于拆包问题
为什么
commaIndex = coordinateString.rangeOfString(",")?.startIndex 使用?拆包
Double(coordinateString.substringToIndex(commaIndex)) 不能使用呢,使用还会报错,强制转换不是也可能有值,可能没值吗
为什么
commaIndex = coordinateString.rangeOfString(",")?.startIndex 使用?拆包
Double(coordinateString.substringToIndex(commaIndex)) 不能使用呢,使用还会报错,强制转换不是也可能有值,可能没值吗
2016-06-18
因为,coordinateString.rangeOfString(",")返回值类型是可选型,进行coordinateString.rangeOfString(",")?.startIndex操作是尝试解包(“?”是尝试解包的意思,“.”是解包后执行后面的操作),且之后的结果也是可选型。再用,let...进行解包
而coordinateString.substringToIndex(commaIndex)返回值类型为String,Double(coordinateString.substringToIndex(commaIndex))返回值为可选型,此处之后没有进行其他的操作,因此无需添加“?”。然后,let...进行解包
举报