0
我有一个UIPickerView
可让用户更改国家设置。NSUserDefaults对象在执行委托方法后没有进入
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(countries[row], forKey: "SelectedCountry")
let test = defaults.stringForKey("SelectedCountry")
delegate?.countryChanged()
}
这个test
变量得到正确的值。
然而,当委托方法countryChanged叫我得到一个错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
这是代码:
func countryChanged() {
let defaults = NSUserDefaults.standardUserDefaults()
countryLabel.text = defaults.stringForKey("SelectedCountry")
}
的价值怎么能是零?这是调用委托方法之前的正确国家,并且没有修改此值的代码。
能否请您分享您的sameple项目? – Max
您应该确保'countries [row]'实际上包含一个'String'。 –
FUNC countryChanged(){ 让默认= NSUserDefaults.standardUserDefaults() 如果让文本= defaults.stringForKey( “SELECTEDCOUNTRY”){ countryLabel?的.text =文本 } } – Lukas