我在 Objective-C 中有一个函数。这个函数总是返回一个值,如果发生错误事件:
-(NSString *)test:(NSError **)error;
我在 Swift1 中重写了它,如下所示,这样我仍然可以同时获取值和错误。
override func test(error: NSErrorPointer) -> String {
var error: NSError?
let result = super.test(&error)
...
}
但现在在 swift2 中,我只能重写像这样的函数
override func test() throws -> String {
}
在这种情况下,如何同时获取值和错误?
我这样做是因为我需要覆盖 AFNetworking 中的一个函数。返回值和错误都需要。
- (id)responseObjectForResponse:(NSURLResponse *)response
data:(NSData *)data
error:(NSError *__autoreleasing *)error;
最佳答案
我知道这并没有回答问题,尽管我可以就 Swift 中的错误处理方式提供指导,但这对您来说可能容易得多。
AFNetworking 有一个名为 AlamoFire 的专用 Swift 库。如果您的项目使用 Swift,使用 AFNetworking 库的 swift 版本可能对您有益。可以在这里找到:
关于ios - Swift2.0 : How to get both return value and error with do try catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32618867/