最近在看swift,有一些經驗,想和你們分享,也寫了個工資計算的小項目,已上線,計算工資超準的,,你們有興趣的,能夠下載看看https://itunes.apple.com/cn/app/個稅小會計-您貼心的個稅小助手/id1260843653?mt=8swift
一、定義變量與常量閉包
(1)swift和oc仍是有些差距的,好比對變量和常量的定義, Objective-C 中,任何數字,單個字符或者字符串一般都稱爲常量。而swift中不可改變的爲常量,用let 修飾,可使NSString、NSArray、NSDictionnary也可使NSMutableString、NSMutableArray、NSMutableDictionary。app
(2)Objective-C 中都是先寫類型 而後在寫變量名,swift中能夠不用謝類型,賦值爲何類型,就是什麼類型spa
①如:let num = 0那麼num就是int類型 orm
點擊option+單擊num將顯示num的類型blog
②let num = 0.0 num就是double類型,swift中double比float用的多ci
③let num = "abc" num就是String類型字符串
④ let num = ["1" : "2"] num是字典string
(3)用let定義是常量,不能夠再改變,用var定義的是變量,能夠改變it
二、聲明屬性
oc 中聲明屬性都是用@property,swift中var num = Double() 或 var num = 0.0
(1)swift建立block,採起閉包的形式
//建立block
typealias changUserName = (MJCityModel) ->()
typealias block名 = (參數類型)->(返回值類型)
//聲明block屬性
var changText: changUserName?
// block 的使用
weak var weakSelf = self
let cityVC = MJCityTableViewController.init(style: UITableViewStyle.plain)
cityVC.cityArray = self.cityArray as? Array<MJCityModel>
cityVC.changText = {(city) ->Void in
weakSelf?.cityModel = city
weakSelf?.leftBtn.setTitle(city.name, for: UIControlState.normal)
self.countAction()
print("")
}
self.navigationController?.pushViewController(cityVC,animated: true)
block屬性名 = {(參數)-> 返回值類型 in
}
三、
①string與float、double轉換
let cityName = "wo"
let name = NSString.init(string: cityName).doubleValue
②float、double轉換爲string
let name = NSString.init(string: cityName).doubleValue
var new = String.init(format: "%.0f", name)
四、for循環
for in
①
for i in 0..<10 {
printf(i)
打印0-9 是個數字
}
也能夠寫成
for _ in 0..<10 {
用下劃線代替i
}
②
for i in 0...10 {
printf(i)
打印0-10 是一個數字
}
五、while循環
①while a < 10 {
printf(a)
a = a + 1//不能寫成a++,會報錯
}
②do while
替換成repeat while
repeat {
print(b)
b = b+1
}while b < 10
六、引入頭文件
swift沒有區分.h .m 文件,只有一個swift文件
因此直接在swift文件中引入頭文件便可
import CoreLocation
import Masonry
import MBProgressHUD
七、接收協議,直接將協議寫在文件名後便可
class ViewController: UIViewController , UITableViewDelegate , UITableViewDataSource , MJTaxTableViewCellDelegate , CLLocationManagerDelegate{