Я внедряю Базовые Данные в моем приложении для iOS.Я использую UICollectionView
.Я пытаюсь вставить избранные треки пользователей в основные данные.
Вот код после нажатия на изображение (избранное) в моем UICollectionViewItems
@objc func addToFavouriteClicked(_ sender:UIButton){
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let entity = NSEntityDescription.entity(forEntityName: "Favurites", in: context)
let favSong = NSManagedObject(entity: entity!, insertInto: context)
favSong.setValue(videos[sender.tag], forKey: "link")
favSong.setValue(titles[sender.tag], forKey: "title")
favSong.setValue(images[sender.tag], forKey: "image")
favSong.setValue(channels[sender.tag], forKey: "owner")
favSong.setValue("sender.tag", forKey: "id")
do {
try context.save()
} catch let err{
print("Failed saving",err.localizedDescription)
}
sender.setBackgroundImage(UIImage(named: "final2heart-outline-96"), for: .normal)
}
Теперь проблема в том, как я могу проверить, чтокакие данные товара являются любимыми или нет?Для этого мне нужно извлечь всех записей из UICollectionViewItems?а затем сопоставить с каждым элементом подробности с основными записями данных?
Как я могу это сделать?Я попытался взломать, но это не сработало.
Вот код
func fetchAndUpdateFavorites(){
for i in 0..<collectionView.numberOfItems(inSection: 0) - 1{
let indexPath = IndexPath(row: i, section: 0)
DispatchQueue.main.async {
let cell = self.collectionView.cellForItem(at: indexPath) as! PlayerCollectionViewCell
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Favurites")
request.returnsObjectsAsFaults = false
do {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let result = try context.fetch(request)
for data in result as! [NSManagedObject] {
let id = data.value(forKey: "id") as! String
let url = data.value(forKey: "image") as! String
let titlee = data.value(forKey: "title") as! String
if id == "\(indexPath.row)" && url == self.images[indexPath.row] && titlee == self.titlesArr[indexPath.row] {
cell.addToFavouriteButton.setBackgroundImage(UIImage(named: "final2heart"), for: .normal)
print(data.value(forKey: "id") as! String,"Favourite")
}
}
} catch {
print("Failed")
}
}
}
}