ios – 未捕获的异常:此类不符合键值编码

参见英文答案 > Xcode – How to fix ‘NSUnknownKeyException’,reason: … this class is not key value coding-compliant for the key X” error?                                    66个
我正在关注 a tutorial titled “Swift Tutorial for iOS : NSFileManager Persisting Data”,我在29分钟左右或之后遇到了错误.当我尝试在iOS模拟器上运行它时,我收到错误:

Terminating app due to uncaught exception ‘NSUnknownKeyException’,reason: ‘[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key theLoadMethod.’

显然基于错误,我认为问题是我的theLoadMethod.以下是我在ViewController中作为此项目的一部分编写的所有代码:

let theDocumentsFolder = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask,true)[0] as String
let theFileName     = "/theUserFile.txt"
let thePath         = theDocumentsFolder.stringByAppendingString(theFileName)


class ViewController: UIViewController {

@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var lastNameTextField: UITextField!
@IBOutlet weak var ageTextField: UITextField!

@IBOutlet weak var theLabel: UILabel!

// The save method
@IBAction func theSaveMethod(sender: AnyObject) {
    var name        = nameTextField.text
    var lastName    = lastNameTextField.text
    var age         = ageTextField.text

    var theString   =   "The user's information is: \(name),\(lastName),\(age)"

    let theFileManager = NSFileManager.defaultManager()

    if !theFileManager.fileExistsAtPath(thePath) {

        var writeError:NSError?
        let fileToBeWritten = theString.writeToFile(thePath,atomically: true,encoding: NSUTF8StringEncoding,error: &writeError)

        if writeError == nil {
            println("No errors. Added: \(theString)")
        } else {
            println("Encountered an error. Error is: \(writeError)")
        }

    } else {
        println("File already exists")
    }

    nameTextField.resignFirstResponder()
    lastNameTextField.resignFirstResponder()
    ageTextField.resignFirstResponder()
}

@IBAction func theLoadMethod(sender: AnyObject) {
    let infoFromFile:String = String.stringWithContentsOfFile(thePath,error: nil)!

    theLabel.text = infoFromFile
}

有什么我做错了吗?据我所知,我的所有iOS屏幕元素都被正确命名和链接.

解决方法

这通常是由故事板到不存在的属性的链接引起的.仔细检查故事板中对象的所有链接.此外,如果您更改了属性或方法的名称或拼写,它仍然可以引用旧属性或方法.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...