2017-01-01 6 views
-2

私はこれに関連するいくつかのスレッドを見つけましたが、私の場合は解決策がありませんでした。私は[String: Any?]の配列formValuesを持っています。私はformvalues["Images"]でうまく動作するImagesキーから値を取得する必要があります。それから私はそれをData配列にキャストしています。この戻り、次のエラー:Could not cast value of type 'Swift.Set<Foundation.Data>' to 'Swift.Array<Foundation.Data>'タイプが配列に設定されていません

let formvalues = self.form.values() 
let images = formvalues["Images"] as! [Data] 

答えて

3

エラーメッセージは非常に明確である:はでし

let images = formvalues["Images"] as! Set<Data> 

エラーメッセージ:キーImagesの値がセットにキャストのでSetです'Foo'タイプのキャスト値を 'Bar'に変換しない

  • 実際の期待されるタイプは、あなたはそれがコンパイラトラストBar
  • だと思うと期待タイプを使用Foo
  • ある

PS:imagesが配列であることが必要な場合は、明示的に作成する必要があり。

let imageSet = formvalues["Images"] as! Set<Data> 
let images = Array(imageSet) 
+0

あなたならば、それはすでに、それが配列に設定キャストすることはできません設定 –

+0

ているので、私は、配列でないセットとしてそれをキャストする必要がありますあなたが作成しなければならない配列が必要** **配列から** **セットから – vadian

0

あなたformvaluesを想定した辞書です:

let formvalues: [String: Any] = self.form.values() 
var images: [Data]? 

switch formvalues["Images"] { 
case let set as Set<Data>: 
    images = Array(set) 
case let array as [Data]: 
    images = array 
default: 
    images = nil 
} 
関連する問題