在swift3.0中连接:二元运算符'+'不能应用于'[]'和'[]?'类型的操作数

问题描述:

得到的错误在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

了解如何发布问题上的计算器。 – Vakas

正如错误提示,则不能使用+添加[FutureTrainee](又名Array<FutureTrainee>)和[FutureTrainee]?(又名Optional<Array<FutureTrainee>>

newTrainees具有类型[FutureTrainee]?因为你。使用可选链接以下标data"data"。此代码:

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

是这样的:

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

你需要确保你只追加newTrainees如果不是零,就像这样:

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 
}