首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SWIFT3.2中任意调用函数append.contentsOf语法错误的数组

SWIFT3.2中任意调用函数append.contentsOf语法错误的数组
EN

Stack Overflow用户
提问于 2018-04-11 17:49:32
回答 1查看 1.1K关注 0票数 1
代码语言:javascript
复制
var dataSource: [Any] = []

我像上面那样声明数组,然后当我声明的时候

代码语言:javascript
复制
// fetchedData is an array of Swift object
dataSource.append(contentsOf: fetchedData)

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-11 18:17:51

您只能对与您所附加的数组完全相同的元素类型的数组使用append(contentsOf:)。这意味着只有当dataSource[Any]类型时,它才能工作。您可以通过使用

代码语言:javascript
复制
append(contentsOf: fetchedData as [Any])

现在,您看到这个wierd错误“无关的参数标签'contentsOf:‘in call”的原因是,即使在您的代码中,fetchedData不限定为[Any],但它被限定为Any,这意味着您可以在技术上使用另一个附加(append(_ newElement: Any)),将fetchData添加为单个元素并创建一个两级数组。斯威夫特认为你想这样做,为了让它像这样工作,你必须去掉"contentsOf“这个论点。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49781522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档