Нет необходимости приводить.
Основываясь на ответе Йоакима, я рекомендую сделать метод более обобщенным c, а также throw
для передачи ошибки вызывающей стороне.
Создание запроса на выборку с типом generi c избавляет от приведения типа
func fetchData<T : NSFetchRequestResult>(entity:String, model: T.Type) throws -> [T] {
let request = NSFetchRequest<T>(entityName:entity)
request.returnsObjectsAsFaults = false
return try managedObjectContext.fetch(request)
}
и использует его
do {
let result = try fetchData(entity: “Foo”, model: Foo.self)
print(result)
} catch {
print("Failed to retrive data")
}