Swift中的可选数组
下面最后一行代码给出了此错误:Swift中的可选数组,swift,Swift,下面最后一行代码给出了此错误: **Binary operator '+=' cannot be applied to operands of type '[AnyObject]' and '[(AnyObject)]'** var newsArray: [AnyObject]? if let _newsArray = newsArray { var mutableNewsArray = [AnyObject]() _newsArray += mutableNewsArra
**Binary operator '+=' cannot be applied to operands of type '[AnyObject]' and '[(AnyObject)]'**
var newsArray: [AnyObject]?
if let _newsArray = newsArray {
var mutableNewsArray = [AnyObject]()
_newsArray += mutableNewsArray
}
我不明白为什么会这样newsArray和MUTABLENSWARRAY属于同一类型,而且newsArray似乎已正确展开。由于您使用“let”展开新闻数组,因此它是不可变的。您不能附加到它
编辑:没有看到Dániel Nagy的答案,这是正确的不,他们没有相同的类型:newsArray是隐式WrappedOptional,而可变NewArray是[AnyObject],为了向newsArray添加元素,你必须将其展开。是的,你将其展开,但创建了一个常量,因此您不能附加到它。使用以下内容会更容易:newsArray?.append(mutableNewsArray)而不是if-let表达式。@DánielNagy正确地指出了这一点。看起来是一个有效的答案(let导致了此错误),需要注意的是,这将复制可选项中的任何内容,并且如果,您所做的更改将被丢弃在
之外。与newsArray?.extend(otherArray)
不同,它将在适当的位置对其进行更改。