swift學習(持續迭代)
學了兩天swift4發現它已經不是從前的那個swift的了,其中很多呼叫和寫法都發生很大的變化,比如GCD的呼叫,閉包的一些使用,接下來的一段時間我會把,所碰到的問題和修改先列在這,由於時間比較緊,所以後面有時間了在做排版整理。看官先將就一些。
語言變化和一些坑的總結
//Function types cannot have argument labels; use '_' before 'index' insert '_'
報錯重現:
func scrollView(frame: CGRect, numberOfLabel: () -> Int, labelOfIndex: (index: Int)->UILabel) -> UIScrollView
解決方案
// 此處要注意的是labelOfIndex這個閉包,引數部分按之前的寫法是在此處宣告形參和型別,按最新的寫法是在用的時候再去宣告,此處之申明型別
func scrollView(frame: CGRect, numberOfLabel: () -> Int, labelOfIndex: (Int)->UILabel) -> UIScrollView {
// code
}
let labelOfIndex = { (index: Int) -> UILabel in
let label = UILabel()
label.text = "標籤 \(index)"
label.sizeToFit()
return label
}
// self.可以不用寫
view.addSubview(scrollView(frame: rect, numberOfLabel: numberOfLabel, labelOfIndex: labelOfIndex))
GCD swift4的寫法:
func loadData() {
DispatchQueue.global().async { () -> Void in
print("玩命載入中 \(Thread.current)")
DispatchQueue.main.async {
print("回撥 \(Thread.current)")
}
}
}