参见英文答案 >
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模拟器上运行它时,我收到错误:
我正在关注 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屏幕元素都被正确命名和链接.
解决方法
这通常是由故事板到不存在的属性的链接引起的.仔细检查故事板中对象的所有链接.此外,如果您更改了属性或方法的名称或拼写,它仍然可以引用旧属性或方法.