Я сохранил данные JSON в основных данных. Проблема для моего приложения заключается в том, что всякий раз, когда я снова вызываю api, вызываемые и сохраняемые данные добавляются в новую строку в основных данных. Я хочу, чтобы всякий раз, когда я снова вызывал API, данные, которые были до этого, заменялись или обновлялись. Как мне этого добиться? Я прочитал его, я могу использовать NSBatchUpdateRequest , но я все еще не понимаю, как это реализовать.
Это мой код
ApiSession.shared.send(request) { (response) in
if let err = response.error {
print("Failed to get youtube data:", err)
return
}
guard let results = response.value else { return }
self.nextPageToken = results.nextPageToken
results.items.forEach({ (result) in
let context = CoreDataManager.shared.persistenceContainer.viewContext
if let video = NSEntityDescription.insertNewObject(forEntityName: "Video", into: context) as? Video {
video.videoTitle = result.snippet.title
video.videoId = result.id.videoID
}
let request: NSFetchRequest<Video> = Video.fetchRequest()
do {
try context.save()
let videos = try context.fetch(request)
DispatchQueue.main.async {
self.videos = videos
self.tableView.reloadData()
}
} catch let saveErr {
print("Failed to save video:", saveErr)
}
})
}