斯威夫特2:奇怪的目标C - > Swift方法的签名转换

时间:2015-08-13 15:43:11

标签: ios objective-c xcode swift swift2

我在Objective-C中有一个基类,使用以下方法:

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

当我尝试使用Swift编译器在子类中覆盖它时强制我声明此方法而没有返回值:

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

并且不允许我归还。

enter image description here

如何从此方法返回值?这是一个Swift 2 / Xcode 7 beta问题,我应该等待发布吗?

1 个答案:

答案 0 :(得分:3)

不,这不是错误。

Swift 2自动识别可以转换为使用try的方法签名。

返回bool并将指针指向NSError pointer的方法会自动转换为使用throw的签名。

您可以在本WWDC演讲中了解更多相关信息:(从32:00开始)https://developer.apple.com/videos/wwdc/2015/?id=106