標籤:blog 使用 strong io for cti ar div
最近上手學習了Swift的語言,諳習JS的我感覺非常順眼,在此記錄下我的學習過程吧.
因為我對Objective-c接觸的不多,所以在oc裡頭使用的東西目前我可能還有很多不知道他的存在.
最近在用swift寫了一些小樣本app,很多地方都用到了基本類型的轉換,但是我發現他居然沒有Integer.parse()這樣的東西,所以還是摸索了一番.
ps: 我使用的版本是xCode6 bate4(其他版本可能實現又差別)
OK,talk is chaep, show you the code!
擴充Double,用於保留幾位小數的操作,比如Double.format(“.2″)保留兩位,其他的也和這個類似
extension Double { //轉換 func format(f: String) -> String { return NSString(format: "%\(f)f", self) }}
Int -> Double、Float、String
var i:Int = 1Double(i)// 1.0Float(i)// 1.0i.bridgeToObjectiveC().stringValue// "1"
String -> Int、Doubel、Float
var s:String = "1.9d2d"s.toInt()//nils.bridgeToObjectiveC().integerValue// 1s.bridgeToObjectiveC().doubleValue// 1.9s.bridgeToObjectiveC().floatValue// 1.89999999...
這裡的轉換規則有些類似JS中的轉換,比如:
- 當字串第一位不為數字,轉為Double(Int)時就會是0,
- 當字串第一位為數字,直接轉換為數字,直到遇到非數字字元停止,數值為非數字字元之前的數字
Double、Float、Int -> String
var d:Double = 1.09d.bridgeToObjectiveC().stringValue// "1.09"d.format(".1")//根據extension Double 擴充的方法(四捨五入) -> "1.1"var f:Float = 1.09f.bridgeToObjectiveC().stringValue// "1.09"
基本規則:
- 不能直接用String(Int)進行轉換
- Int可以直接使用Double(Int)、Float(Int)
- 大部分的基本類型轉換都是用bridgeToObjectiveC()函數處理