Неопределенное исключение: этот класс не соответствует кодировке значения ключа [дубликат]
На этот вопрос уже есть ответ здесь:
Что это значит? «NSUnknownKeyException», причина:… этот класс не совместим со значением ключа для кода X » 66 ответовя следуюучебное пособие под названием «Swift Tutorial для iOS: NSFileManager Persisting Data»и я столкнулся с ошибкой около или после 29-минутной отметки. Когда я пытаюсь запустить его на симуляторе iOS, я получаю сообщение об ошибке:
Завершение работы приложения из-за необработанного исключения «NSUnknownKeyException», причина: «[setValue: forUndefinedKey:]: этот класс не соответствует значению ключа, соответствующему кодированию для ключа 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, encoding: NSUTF8StringEncoding, error: nil)!
theLabel.text = infoFromFile
}
Что-то я делаю не так? Насколько я знаю, все мои элементы iOS на экране имеют правильные имена и ссылки.