为了账号安全,请及时绑定邮箱和手机立即绑定

'var'参数已弃用,将在Swift 3中删除

'var'参数已弃用,将在Swift 3中删除

MM们 2019-11-29 15:44:07
好吧,所以我只是将Xcode更新到7.3,现在我收到以下警告:'var'参数已弃用,将在Swift 3中删除当我需要在此函数中使用var时如何解决此问题:public func getQuestionList(var language: String) -> NSArray {    if self.data.count > 0 {        if (language.isEmpty) {            language = "NL"        }        return self.data.objectForKey("questionList" + language) as! NSArray    }    return NSArray()}
查看完整描述

3 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

您是否尝试分配给新的变量


public func getQuestionList(language: String) -> NSArray {

    var lang = language

    if self.data.count > 0 {

        if (lang.isEmpty) {

            lang = "NL"

        }

        return self.data.objectForKey("questionList" + lang) as! NSArray

    }


    return NSArray()

}


查看完整回答
反对 回复 2019-11-29
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

从函数参数中删除Var的讨论已在GitHub上的此提交中完整记录:Remove Var Parameters


在该文档中,您会发现人们经常将var参数与inout参数混淆。甲var参数仅仅意味着所述参数是所述函数的范围内可变的,同时用inout参数在返回点的参数值将在功能并进入调用者的上下文被复制出来。


解决此问题的正确方法是var从参数中删除并引入局部var变量。在例程的顶部,将参数的值复制到该变量中。


查看完整回答
反对 回复 2019-11-29
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

只需在函数的开头添加这一行:


var language = language

其他代码可以保持不变,如下所示:


public func getQuestionList(language: String) -> NSArray {

    var language = language

    if self.data.count > 0 {

        if (language.isEmpty) {

            language = "NL"

        }

        return self.data.objectForKey("questionList" + language) as! NSArray

    }


    return NSArray()

}


查看完整回答
反对 回复 2019-11-29
  • 3 回答
  • 0 关注
  • 579 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信