我尝试将图片图标存储到CoreData
中,并且在应用崩溃后我一直收到此错误:
由于未捕获的异常终止应用' NSInvalidArgumentException',原因:'属性的值不可接受的类型:property =" weatherIcon&#34 ;;所需类型= NSData;给定type = 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")
}
'图标'正在从另一个ViewController中抓取,就像forecastInfo一样。
var forecastInfo = [String]()
var icon = UIImage()
我理解错误消息的内容,但是value属性是二进制数据,并且在保存之前我已经将图像图标保存到Data中。 除了图标,一切都存储得很好。 我错过了什么?
实体:预测
属性: weatherIcon:二进制数据, forecastDetails :字符串
答案 0 :(得分:1)
正如Quoc Nguyen所写,你的第6个代码行中有一个拼写错误:
应该是:
forecast.setValue(iconData, forKey: "weatherIcon")