【发布时间】:2015-09-19 03:14:30
【问题描述】:
当我将我的 Swift 1 项目转换为 Swift 2 时发生了奇怪的事情,即 Swift2 将带有 NSError 的返回类型 BOOL 函数视为返回类型 Void 函数。
例如,我的代码使用XMPPFramework,其中有一个函数定义如下:
- (BOOL)authenticateWithPassword:(NSString *)password error:(NSError **)errPtr;
我曾经有一段代码可以做到这一点:
if (xmppStream!.authenticateWithPassword(password)) {
println("authenticated");
}
现在它已更新为遵循 Swift 2 语法:
do {
if let result = try xmppStream!.authenticateWithPassword(password) {
print("authenticate");
}
} catch _ {}
由于某些原因,swift 2 将 authenticateWithPassword 视为 void 类型函数,因此上面的代码无法通过编译。
只是想知道是否有人遇到过同样的情况以及解决方案是什么。
谢谢。
【问题讨论】:
标签: objective-c swift swift2