Swift – 调用中的额外参数

Swift – 调用中的额外参数,第1张

概述我试图从DetailViewController类调用ViewController类中声明的函数。 当试图调试“额外参数调用”错误d出。 在ViewController类中: func setCity(item : Cities, index : Int){ citiesArray!.removeObjectAtIndex(index) citiesArray!.insertO 我试图从DetailVIEwController类调用VIEwController类中声明的函数。

当试图调试“额外参数调用”错误d出。

在VIEwController类中:

func setCity(item : CitIEs,index : Int){    citIEsArray!.removeObjectAtIndex(index)    citIEsArray!.insertObject(item,atIndex: index)}

在detailVIEwController类中

// city of type CitIEs VIEwController.setCity(city,5 ) //Error: "Extra argument in call"

这很简单,但我很困惑。

在某些情况下,即使调用看起来正确,如果参数的类型与函数声明的类型不匹配,也会给出“调用中的额外参数”。从你的问题,它看起来像你试图调用一个实例方法作为类方法,我发现是这些情况之一。例如,此代码给出完全相同的错误:
class Foo {    func name(a:Int,b: Int) -> String {        return ""    }}class bar : Foo {        init() {        super.init()        Foo.name(1,b: 2)    }}

你可以在你的代码中通过将setCity的声明更改为class func setCity(…)(在注释中提到)来解决这个问题。这将允许VIEwController.setCity调用按预期工作,但我猜想你想setCity是一个实例方法,因为它似乎修改实例状态。您可能想要获取一个实例到您的VIEwController类,并使用它来调用setCity方法。说明使用上面的代码示例,我们可以这样改变bar:

class bar : Foo {        init() {        super.init()        let foo = Foo()        foo.name(1,b: 2)    }}

Voila,没有更多的错误。

总结

以上是内存溢出为你收集整理的Swift – 调用中的额外参数全部内容,希望文章能够帮你解决Swift – 调用中的额外参数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1059610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存