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”。