在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
答
正如错误提示,则不能使用+
添加[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
}
了解如何发布问题上的计算器。 – Vakas