Пожалуйста, объедините ваши имена переменных: в цикле есть две разные data
переменные, которые вызывают путаницу и ошибку
Better
for item in result as! [NSManagedObject] {
let data = img!.pngData() as? NSData
item.setValue(data, forKey: "starImage")
}
Тем не менее, я рекомендую использовать более конкретные типы и создавать изображение только один раз
let request = NSFetchRequest<Item>(entityName: "Item")
do {
let result = try context.fetch(request)
let img = UIImage(named: "Gray star icon")
let data = img!.pngData() as? NSData
for item in result {
item.starImage = data
}
} catch {
print("Failed", error)
}