Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用NSUserDefault时出错_Ios_Swift_Nsuserdefaults - Fatal编程技术网

Ios 使用NSUserDefault时出错

Ios 使用NSUserDefault时出错,ios,swift,nsuserdefaults,Ios,Swift,Nsuserdefaults,我已经为这件事绞尽脑汁好几个小时了!我只是想更新一个NSUserDefault整数值 我的代码有什么问题?以下是我得到的解释: ***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[Wenger1.ViewController defaultsChanged]:发送到实例0x7ffe1ae2b540的选择器无法识别' 代码: 您正在为键userFOD设置integer并从NSUserDefault获取string值。我认为这是一个错误。通过查看

我已经为这件事绞尽脑汁好几个小时了!我只是想更新一个
NSUserDefault
整数值

我的代码有什么问题?以下是我得到的解释:

***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[Wenger1.ViewController defaultsChanged]:发送到实例0x7ffe1ae2b540的选择器无法识别'

代码:


您正在为键
userFOD
设置
integer
并从
NSUserDefault
获取
string
值。我认为这是一个错误。

通过查看您的代码,我不知道基本问题是什么。但是,我可以为您提供代码的修改版本。给你-

var fod = 0
let userFODKey = "userFODKey"
let stUserDefaults = NSUserDefaults.standardUserDefaults()

func fetchFodFromUserDefaults() -> Int? {

    if let fod = stUserDefaults.valueForKey(userFODKey) as? Int {
        print("fod: \(fod)")
        return fod
    }
    return nil
}


func saveFodToUserDefaults(fodString: String) {

    if let fodInt = Int(fodString) {
        fod = fodInt
        stUserDefaults.setInteger(fod, forKey: userFODKey)
    }
}
为数据调用提供数据

saveFodToUserDefaults("yourUIElementTextString")
获取数据调用

let value: Int? = fetchFodFromUserDefaults()

什么是
defaultsChanged
?之前定义的功能是否仍连接到按钮操作?你是从这里得到的吗?您注册通知了吗?谢谢!:-)与NotificationCenter相关的代码导致问题:NSNotificationCenter.defaultCenter().addObserver(self,选择器:“defaultsChanged”,名称:NSUserDefaultsDidChangeNotification,对象:nil)否,与实际错误无关。错误是关于调用
[Wenger1.ViewController defaultsChanged]
。我必须说,但是您对代码进行了仔细检查。这并没有试图回答问题。
let value: Int? = fetchFodFromUserDefaults()