簡體   English   中英

Xcode關閉自動完成問題

[英]Xcode closure auto completion issue

以下是使用 Xcode 6.4 針對 iOS 8.4 構建的工作代碼

NSURLConnection.sendAsynchronousRequest(urlRequest, queue: NSOperationQueue.mainQueue(), completionHandler: { response, data, error in
    if error != nil {
        println("there be an error")
    } else {
        let image = UIImage(data:data)
        self.webimage.image = image
    }
})

如果我在 Xcode 自動完成時雙擊方法簽名的關閉部分,我最終會處於這種狀態:

在此處輸入圖片說明

Xcode中並沒有把})在封閉的末端,還添加-> Void in

這是 Xcode 6.4 中的錯誤還是閉包有兩種替代語法?

我什么時候需要completionHandler : { arg, arg arg incompletionHandler : {(arg,arg,arg) -> Void in //code })

Xcode 自動完成指令的方式是“尾隨閉包樣式”。

從蘋果文檔:

如果您需要將閉包表達式作為函數的最終參數傳遞給函數,並且閉包表達式很長,那么將其寫為尾隨閉包會很有用。 尾隨閉包是一個閉包表達式,寫在它支持的函數調用的括號之外(和之后)

如果您想了解有關尾隨閉包的更多信息,請在此處向文檔報告: https : //developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html (參見尾隨閉包部分)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM