CoreData ile Veri İşlemleri

CORE DATA (SAVE)

Attributes alanında sql tarzında sütunlar oluşturulmaktadır. 

Önemli : CoreData import edilmelidir.

Veri Kaydetme

let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let newPainting = NSEntityDescription.insertNewObject(forEntityName: "Paintings", into: context)

newPainting.setValue(UUID(), forKey: "id") 
newPainting.setValue(nameInput.text!, forKey: "name") 
newPainting.setValue(artistInput.text!, forKey: "artist")

if let year = Int(yearInput.text!) {
  newPainting.setValue(year, forKey: "year")
} 

let imageData = imageView.image?.jpegData(compressionQuality: 0.5)    

newPainting.setValue(imageData, forKey: "image")

  do {
   try context.save()
    print("save")
   } catch {
    print("error")
  }

CORE DATA (FETCH)

Veri Çekme

let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Paintings") 
fetchRequest.returnsObjectsAsFaults = false
do{
let results = try context.fetch(fetchRequest)
if results > 0 {
 for result in results as! [NSManagedObject] {

  if let name = result.value(forKey: "name") as? String {
   self.nameArray.append(name)
  }

  if let id = result.value(forKey: "id") as? UUID {
   self.idArray.append(id)
  }

 }
}    

 self.tableView.reloadData() 

} catch {
 print("error")
}

Filtreleyerek Veri Çekme

fetchRequest.predicate = NSPredicate(format: "id = %@", idString! )            

Veriyi Silme İşlemi

For in döngüsü içerisinde

// for result in results { …
context.delete(result) 
// ...
// }

2 Comments:

  1. Fatih Altun

    karmaşık olan bu kadar bilgiyi sade ve öz bir şekilde anlatmışsınız elinize sağlık hocam

    1. admin

      Bunlar kişisel notlarım. Çok anlaşılır değil ama snippetlar işinize yaradıysa ne mutlu bana 🙂

Leave a Reply:

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir