1. 程式人生 > >swift學習(持續迭代)

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)")

            }

        }

    }