все выходы верны, этот класс не соответствует значению ключа для ключа listTitle - PullRequest
0 голосов
/ 26 мая 2019

Я продолжал получать этот класс не совместимый со значением ключа для ошибки listTitle ключа, но все мои выходы верны.

Я попытался восстановить все розетки и убедиться, что все в порядке, но эта ошибка все еще здесь.

@IBOutlet weak var listTitle: UILabel!
@IBOutlet weak var itemTextField: UITextField!
@IBOutlet weak var likeRate: UILabel!
@IBOutlet weak var slider: UISlider!
@IBOutlet weak var counter: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()

    listTitle.text = addedListTitle

    slider.value = 1
    likeRate.text = "1"
}


@IBAction func addPressed(_ sender: Any) {

    if (itemTextField.text!==""){
        counter.text = "You must enter a name for the item"
    }
    else {

        elementCount += 1
        addedItem[itemTextField.text!] = elementRate

        if elementCount < 2
        {
           counter.text = "You have \(elementCount) element in the list"
        }
        else
        {
            counter.text = "You have \(elementCount) elements in the list"
        }
        itemTextField.text = ""
        slider.value = 1
        likeRate.text = "1"
        elementRate = 1
    }
}
@IBAction func finishPressed(_ sender: Any) {

    if (elementCount == 0){
        counter.text  = "You must enter at least one element"
    }
    else{
        addTitle()
        addItems()

        performSegue(withIdentifier: "addToGenerate", sender: self)
    }
}

@IBAction func cancelPressed(_ sender: Any) {

    performSegue(withIdentifier: "addToHome", sender: self)
}

func addTitle() {
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    let context = appDelegate.persistentContainer.viewContext
    let newList = NSEntityDescription.insertNewObject(forEntityName: "Lists", into: context)

    newList.setValue(addedListTitle, forKey: "listTitle")

    do
    {
        try context.save()
        print("SAVED")
    }
    catch
    {
    }
}

func addItems() {
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    let context = appDelegate.persistentContainer.viewContext
    let newItemList = NSEntityDescription.insertNewObject(forEntityName: "Items", into: context)

    for item in addedItem {
        newItemList.setValue(item.key, forKey: "itemName")
        newItemList.setValue(item.value, forKey: "rate")
        newItemList.setValue(addedListTitle, forKey: "listTitle")
    }

    do
    {
        try context.save()
        print("SAVED")
    }
    catch
    {

    }
}

}

    2019-05-26 03:05:15.230138-0400 Selector[4391:283284] *** Terminating
    app due to uncaught exception 'NSUnknownKeyException', reason:
    '[<NSFetchRequest 0x600001c089a0> valueForUndefinedKey:]: this class
    is not key value coding-compliant for the key listTitle.'

1 Ответ

0 голосов
/ 26 мая 2019

У вас проблема в loadData методе FirstTableViewController класса.Вы пытаетесь получить значение из объекта request NSFetchRequest.Вы должны получить значение из NSManagedObject объекта result.

Изменить

if let listTitle = request.value(forKey: "listTitle") as? String {

на

if let listTitle = result.value(forKey: "listTitle") as? String {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...