swift上手有好几天了。发现swift除了本身的几个基本类型转换,一些比较特殊的数值类型转换需要“桥接”到Objective-C来进行~
代码当然也很简单~
var numString = "1.0"var numDouble:DoublenumDouble = String.bridgeToObjectiveC(numString)().doubleValue//相当于objective-c的" numdouble = [numString doubleValue] "//numDouble值为:1.0
如果numString不是“数字”字符,而是其他字符呢?
var numString = "abc"var numDouble:DoublenumDouble = String.bridgeToObjectiveC(numString)().doubleValue//numDouble值为:0.0
这种情况不会引起编译器的异常。继续看以下的几种情况:
var numString1 = "1.5abc"var numString2 = "2.abc0"var numString3 = "abc3.0"var numDouble:DoublenumDouble = String.bridgeToObjectiveC(numString1)().doubleValue//numDouble1值为:1.5numDouble = String.bridgeToObjectiveC(numString2)().doubleValue//numDouble2值为:2.0numDouble = String.bridgeToObjectiveC(numString3)().doubleValue//numDouble3值为:0.0
可以看出,doubleValue这个东东,从字符串的第一个字符开始索引,查找连续的数字字符(包含一个“.”),到第二个“.”或非数字的字符为止结束索引。
新闻热点
疑难解答