在 Swift 3 之前,我使用结果创建 AWSTask 的代码是这样的:
let results = ["resultOne", "resultTwo"]
let task = AWSTask(result: results)
但是使用 Swift 3,我从 Xcode 8 收到了这个错误消息:
无法将类型“[String]”的值转换为预期的参数类型“_?”
有没有其他人遇到过这个?非常感谢!
在 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)
因为在定义 AWSTask 时results
必须对 Protocol 进行确认:AnyObject
open class AWSTask<ResultType : AnyObject> : NSObject {...}
在 swift 2.2["resultOne", "resultTwo"]
中是自动桥接NSArray
,
但在 swift 3.0 中,您必须[String]
手动进行NSArray
。
这是解释: