Мне нужно добавить только одну запись в базу данных. Если база данных пуста, то по какой-то причине ничего не добавляется. Если в базе данных есть записи, то я добавляю несколько одинаковых записей из-за цикла, который я предполагаю. Вот мой код:
import UIKit
import AVFoundation
import CoreData
class PlayerViewController: UIViewController, VLCMediaPlayerDelegate {
@IBOutlet var favoriteBarButton: UIBarButtonItem!
@IBAction func addFavorites(_ sender: UIBarButtonItem) {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let entity = NSEntityDescription.entity(forEntityName: "MarkersModel", in: context)
let request: NSFetchRequest<MarkersModel> = MarkersModel.fetchRequest()
request.returnsObjectsAsFaults = false
request.includesPropertyValues = false
do { let result = try context.fetch(request)
for (i, s) in result.enumerated() {
// Can simply use 'sender' here, no need to index into senderArray.
if s.nameCam == self.webcamTitle! {
let value = result[i]
context.delete(value)
self.favoriteBarButton?.tintColor = .red
//do {
try context.save()
//}
}
if s.nameCam != self.webcamTitle!
{
let newFavoriteCamera = NSManagedObject(entity: entity!, insertInto: context)
newFavoriteCamera.setValue(self.webcamTitle, forKey: "nameCam")
newFavoriteCamera.setValue(self.webcamURL, forKey: "urlCam")
self.favoriteBarButton?.tintColor = .green
//do {
//let value = result[i]
context.insert(newFavoriteCamera)
try context.save()
//}
}
}
}