【发布时间】:2015-09-21 20:26:06
【问题描述】:
我注意到,如果我创建一个返回 void 并接受 NSError 指针的 Objective-c 函数,它不会转换为 swift do-catch 错误流,我必须传入对 NSError 的引用就像以前版本的 swift 一样。
例如:
- (void)doSomethingWithError:(NSError **)error {
// set the error in here
}
迅速:
var error: NSError?
anObject.doSomethingWithError(&error)
if error != nil {
// do stuff
}
如果我返回一个objective-c 对象或布尔值,它将正确翻译:
- (NSString *)doSomethingWithError:(NSError **)error {
}
迅速:
do {
let aString = try anObject.doSomething()
} catch {
// stuff
}
这有什么我不明白的地方,还是这只是苹果丢球?前段时间看到帖子提到这个:blog post
【问题讨论】:
-
Docs
You place an ampersand (&) directly before a variable’s name when you pass it as an argument to an inout parameter, to indicate that it can be modified by the function. -
@ssrobbi:这是一个可能感兴趣的关于错误检查的相关问答:stackoverflow.com/questions/29384218/…。
-
感谢@MartinR,只是需要更严格地遵循可可标准。
标签: ios objective-c swift swift2