2016-09-16 13 views
4

斯威夫特3之前,我對於結果創建AWSTask代碼是這樣的:用於創建帶結果的AWSTask的Swift 3語法是什麼?

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

但是用斯威夫特3,我在Xcode 8收到此錯誤信息:

不能轉換價值類型'[String]'到期望的參數類型'_?'

有沒有人遇到過這個?非常感謝!

+0

嘗試'讓結果:任何=([ 「resultOne」, 「resultTwo」])' –

回答

5

只需添加as NSArray這樣的:

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

由於results必須確認到AnyObject協議時確定AWSTask:

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

在SWIFT 2.2 ["resultOne", "resultTwo"]是汽車brige是到NSArray

但在迅速3.0你必須brige [String]NSArray手動。

這樣的解釋:

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

+0

非常感謝!在閱讀你的答案之前,我注意到NSArray演員擺脫了錯誤,但你的答案告訴我爲什麼。 –

相關問題