用于创建带结果的 AWSTask 的 Swift 3 语法是什么?

What is the Swift 3 syntax for creating an AWSTask with a result?

在 Swift 3 之前,我创建 AWSTask 的代码是这样的:

let results = ["resultOne", "resultTwo"]
let task = AWSTask(result: results)

但使用 Swift 3,我从 Xcode 8:

收到此错误消息

无法将“[String]”类型的值转换为预期的参数类型“_?”

还有其他人遇到过这个吗?非常感谢!

只需像这样添加 as NSArray

let results = ["resultOne", "resultTwo"] as NSArray
let task = AWSTask(result: results)

因为results定义AWSTask时必须确认协议AnyObject:

open class AWSTask<ResultType : AnyObject> : NSObject {...}

在swift 2.2中["resultOne", "resultTwo"]自动桥接到NSArray,

但在 swift 3.0 中,您必须手动将 [String] 桥接到 NSArray

这是解释:

https://github.com/apple/swift-evolution/blob/master/proposals/0072-eliminate-implicit-bridging-conversions.md