gpt4 book ai didi

swift - 设置初始值时调用中缺少参数 #1 的参数

转载 作者:行者123 更新时间:2023-11-28 07:13:19 25 4
gpt4 key购买 nike

我正在尝试将当前语言环境国家/地区设置为初始值:

class Location: RLMObject {
dynamic var country = currentCountry()

func currentCountry() -> String!{
let locale = NSLocale.currentLocale()
let countryCode = locale.objectForKey(NSLocaleCountryCode) as String

let countryName = locale.displayNameForKey(NSLocaleCountryCode, value: countryCode)
return countryName
}
}

最佳答案

问题在于 country 是一个实例 变量,而 currentCountry 也是一个实例 函数。当你要初始化country时,还没有instance,所以你不能引用currentCountry函数。但是,如果您更改为:

dynamic var country = YOUR_CLASS_NAME.currentCountry()

class func currentCountry() -> String!{
let locale = NSLocale.currentLocale()
let countryCode = locale.objectForKey(NSLocaleCountryCode) as String

let countryName = locale.displayNameForKey(NSLocaleCountryCode, value: countryCode)
return countryName
}

它会起作用,因为现在 currentCountry 是一个函数,并且在初始化时可用。

或者如果您不想为此定义显式函数,只需为计算属性语法使用闭包:

dynamic var country: String {
let locale = NSLocale.currentLocale()
let countryCode = locale.objectForKey(NSLocaleCountryCode) as String

let countryName = locale.displayNameForKey(NSLocaleCountryCode, value: countryCode)
return countryName!
}

或者第三个选项,如果你想保留你的功能,你必须在初始化后设置县变量,比如:

dynamic var country: String!

override func viewDidLoad() {
super.viewDidLoad()
country = currentCountry()
}

关于swift - 设置初始值时调用中缺少参数 #1 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27544642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com