'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")
}
}