我在Objective-C中有一个基类,使用以下方法:
- (BOOL)canFinishWithError:(NSError *__autoreleasing *)error
当我尝试使用Swift编译器在子类中覆盖它时强制我声明此方法而没有返回值:
override func canFinish() throws{
// some code
try super.canFinish()
}
并且不允许我归还。
如何从此方法返回值?这是一个Swift 2 / Xcode 7 beta问题,我应该等待发布吗?
答案 0 :(得分:3)
不,这不是错误。
Swift 2自动识别可以转换为使用try
的方法签名。
返回bool
并将指针指向NSError pointer
的方法会自动转换为使用throw
的签名。
您可以在本WWDC演讲中了解更多相关信息:(从32:00开始)https://developer.apple.com/videos/wwdc/2015/?id=106