簡體   English   中英

Swift 2:奇怪的目標C-> Swift方法的簽名轉換

[英]Swift 2: Strange Objective C -> Swift method's signature conversion

我在Objective-C中具有以下方法的基類:

- (BOOL)canFinishWithError:(NSError *__autoreleasing *)error

當我嘗試使用Swift編譯器在子類中重寫它時,迫使我聲明此方法而沒有返回值:

override func canFinish() throws{
        // some code
        try super.canFinish()
    }

不允許我退貨。

在此處輸入圖片說明

如何從該方法返回值? 是Swift 2 / Xcode 7 beta版問題,我應該等待發布嗎?

不,這不是錯誤。

Swift 2自動識別方法簽名,可以將其轉換為使用try

返回bool並使用NSError pointer的方法將使用throw自動轉換為簽名。

您可以在WWDC演講中了解有關此內容的更多信息:(從32:00開始) https://developer.apple.com/videos/wwdc/2015/?id=106

暫無
暫無

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

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