2016-11-09 13 views
-2

はSwift3.0にエラーが表示されます。swift3.0で連結:バイナリ演算子 '+'は、 '[]'型と '[]'型のオペランドには適用できません。

'+' '[FutureTrainee]' タイプのオペランドに適用することができないバイナリ演算子と '?[FutureTrainee]'

コード:

let newTrainees = data?["data"].arrayValue.map({ (json) in 
          return FutureTrainee(data: json) 
         }) 
let trainees = self.futureTraineeCollection.futureTrainees + newTrainees 
+1

stackoverflowの上の質問を投稿する方法を学ぶ:

var newTrainees: [FutureTrainee]? if let data = data { newTrainees = data["data"].arrayValue.map({ (json) in return FutureTrainee(data: json) }) else { newTrainees = nil } 

あなたはそれがそうのように、ゼロではない場合にのみnewTraineesを追加を確認する必要があります。 – Vakas

答えて

0

エラーが示唆するのと同じように、あなたは別名Optional<Array<FutureTrainee>>[FutureTrainee](別名Array<FutureTrainee>)と[FutureTrainee]?を追加するために+を使用することはできません

newTraineesはあなたので[FutureTrainee]?を入力しています。任意の連鎖を使用してdataを添えて"data"を使用しました。このコード:

let newTrainees = data?["data"].arrayValue.map({ (json) in 
         return FutureTrainee(data: json) 
        }) 

は次のようである:

var trainees = self.futureTraineeCollection 

if let newTrainees = data?["data"].arrayValue.map{ FutureTrainee(data: $0) } { 
    // If that expression is not nil, the result is bound to "newTrainees" 
    trainees += newTrainees 
}