iOS/Swift:图像无法保存到 CoreData 中,应用程序崩溃



我正在尝试将图像图标存储到CoreData中,并且在应用程序崩溃后不断收到此错误:

由于未捕获的异常"NSInvalidArgumentException"而终止应用程序,原因:"属性的值类型不可接受的:属性 = "天气图标"; 所需类型 = NSData; 给定类型 = Swift._NSContiguousString;

let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let forecast = NSEntityDescription.insertNewObject(forEntityName: "Forecast", into: context)
forecast.setValue("(forecastInfo)", forKey: "forecastDetails")
let iconData = NSData(data: UIImageJPEGRepresentation(icon, 1.0)!) 
forecast.setValue("(iconData)", forKey: "weatherIcon")
do {
try context.save()
print("Forecast saved")
}catch {
print("Error saving data")   
}

"icon"是从另一个ViewController抓取的,就像forecastInfo一样。

var forecastInfo = [String]()    
var icon = UIImage()

我了解错误消息所说的内容,但 value 属性是二进制数据,并且在保存之前我已经将图像图标转换为 Data。 除了图标之外,一切都存储得很好。 我错过了什么?

实体:预测

属性:天气图标:二进制数据,预测详细信息:字符串

正如Quoc Nguyen所写,你的第6行代码有一个错别字:

它应该是:

forecast.setValue(iconData, forKey: "weatherIcon")

最新更新