Прежде всего, никогда не печатайте бессмысленную буквенную строку, такую как "Error"
, в блоке catch.Всегда печатайте экземпляр error
.
Animal
- это, очевидно, класс (ссылочный тип).Вы создаете один экземпляр, и свойства обновляются в цикле.Как всегда, используется один и тот же экземпляр, значения перезаписываются, и вы получаете result.count
элементов с одинаковым содержимым.
Создайте новые экземпляры внутри цикла и замените Entity
реальным именем объекта
var tempArr = [AnimalViewModel]()
do {
let result = try managedContext.fetch(fetchRequest) as! [Entity] // let !
for ds in result {
let objAnimal = Animal() // let !
objAnimal.name = ds.name
objAnimal.type = ds.type
let objAVM = AnimalViewModel(aniModel: objAnimal) // let !
tempArr.append(objAVM)
}
} catch {
print(error)
}
И, пожалуйста, обратите внимание и исправьте предупреждения о никогда не изменяемых переменных