Я получаю эту ошибку в Swift «NSInvalidArgumentException» - PullRequest
0 голосов
/ 15 января 2020

'NSInvalidArgumentException', причина: 'Недопустимый тип значения для атрибута: property = "save1D"; желаемый тип = NSData; данный тип = Swift .__ SwiftDeferredNSArray;

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

 @IBAction func saveData(_ sender: Any) {
        let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
        let entity = NSEntityDescription.entity(forEntityName: "TextSave", in: context)
        let textEntity = NSManagedObject(entity: entity!, insertInto: context)

        textEntity.setValue(v1, forKey: "save1D")
        textEntity.setValue(i1, forKey: "save2D")
        textEntity.setValue(ImageView, forKey: "picCock")

        do {
            try context.save()
            print("saved")

        } catch {
            print("failed save")
        }
        }
   func getData() {
            let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
             let request = NSFetchRequest<NSFetchRequestResult>(entityName: "TextSave")
             request.returnsObjectsAsFaults = false

             do {
                 let result = try context.fetch(request)
                 for data in result as! [NSManagedObject]
                 {
                    v1 = data.value(forKey: "save1D") as! [String]
                    i1 = data.value(forKey: "save2D") as! [String]
                     ImageView = (data.value(forKey: "picCock") as! UIImageView)
                 }
             } catch {
                 print("failed")
             }
             }

1 Ответ

0 голосов
/ 15 января 2020

Проблема здесь

textEntity.setValue(v1, forKey: "save1D")

v1 имеет тип NSData, в то время как это должен быть массив

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...