var dataSource: [Any] = []

我像上面那样声明数组,然后当我这样做时
// fetchedData is an array of Swift object
dataSource.append(contentsOf: fetchedData)

我说Extraneous argument label 'contentsOf:' in call时出现编译错误[Any]类型认为我正在传递单个对象,我不喜欢将dataSource类型更改为特定对象。有办法解决吗?

最佳答案

您只能将append(contentsOf:)与元素类型与要附加的数组完全相同的数组一起使用。这意味着它仅在dataSource类型为[Any]时才有效。您可以使用解决此问题

append(contentsOf: fetchedData as [Any])

现在,您看到此异常错误“调用中的外部参数标签'contentsOf:'”的原因是,即使在您的代码中fetchedData不符合[Any]的条件,它也符合Any的条件,这意味着您可以从技术上使用其他附加项(append(_ newElement: Any) ),将fetchData添加为单个元素并创建一个两级数组。 Swift认为您想这样做,并且要使其像这样工作,您必须删除参数“contentsOf”。

10-07 14:59