To add an overall rating, we need to pull all of the reviews from Core Data, add them all together, and get an average. Let's add a new method to our Core Data manager to handle this. Add the following inside CoreDataManager.swift:
func fetchRestaurantRating(by identifier:Int) -> Float {
let reviews = fetchReviews(by: identifier).map({ $0 })
let sum = reviews.reduce(0, {$0 + ($1.rating ?? 0)})
return sum / Float(reviews.count)
}
In this method, we fetch all of the reviews for a restaurant by their ID. Then, we use the reduce method to add them all together, and finally, we calculate the average. Now, let's use this newly created method. Open up RestaurantDetailViewController.swift. Under the selectedRestaurant variable, add the following:
let manager = CoreDataManager()
Next, under the createRating() method, we just set our rating...