【发布时间】:2016-04-06 18:00:09
【问题描述】:
我已经为此苦苦思索了好几个小时!我只是想更新一个NSUserDefault 整数值。
我的代码有什么问题?这是我得到的例外:
*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[Wenger1.ViewController defaultsChanged]:无法识别的选择器发送到实例 0x7ffe1ae2b540”
代码:
class ViewController: UIViewController {
var fod = 0
override func viewDidLoad() {
super.viewDidLoad()
let prefs = NSUserDefaults.standardUserDefaults()
// load fod
if prefs.stringForKey("userFOD") != nil {
FodValue.text = String (prefs.valueForKey("userFOD"))
// FodValue.text = String (fod)
print("fod: \(fod)")
}
}
@IBAction func FOD(sender: AnyObject) {
fod = Int(FodValue.text!)!
//Store fod value
let prefsFOD = NSUserDefaults.standardUserDefaults()
prefsFOD.setInteger(fod, forKey: "userFOD") // FAIL HERE...
}
【问题讨论】:
-
什么是
defaultsChanged?先前定义的功能是否仍与按钮操作相关联?你是从stackoverflow.com/questions/3927402/…这里得到的吗?你注册通知了吗? -
谢谢! :-) 与 NotificationCenter 相关的代码导致了问题: NSNotificationCenter.defaultCenter().addObserver(self, selector: "defaultsChanged", name: NSUserDefaultsDidChangeNotification, object: nil)
标签: ios swift nsuserdefaults