Core Data Nedir?

İlayda Şahin
3 min readMay 30, 2021

--

Bu yazıda, IOS uygulamalarımızda kaydetmemiz gereken verileri, telefon hafızasına kaydedip saklamamızı sağlayan Core Data’dan bahsedeceğim. Keyifli okumalar dilerim 🙂

Core Data, uygulama kapandıktan sonra da kayıtlı kalmasını istediğimiz verileri telefon hafızasında saklamamızı sağlar. Yapı olarak içerisinde SqLite kullanılır. Apple cihazları için en stabil çalışan veritabanı çözümüdür. Çünkü sizi 3. parti kütüphaneleri kullanmaktan kurtarır.

Peki Nasıl Kullanılır?

XCode, bir proje oluştururken Core Data kullanmak isteyip istemediğimizi sorar.

Oluşturacağımız projede Core Data kullanmak için Use Core Data seçeneğini işaratleyip projemizi Core Data ile yaratmalıyız. Projeyi yarattıktan sonra To_Do_List.xcdatamodeld dosyasının oluştuğunu göreceğiz. Bu dosya, içerisinde varlıklarımızı(entity) yaratacağımız ve bu varlıklara özellikler(property) ekleyeceğimiz kısımdır.

Bu sayfada Add Entity butonuna tıklayarak bir varlık yaratabiliriz. Örneği verilen projede bu varlığın adı “Task”dir. Task varlığına tanımladığımız iki tane özellik var, bunlardan ilki Task’in başlığını tutacak olan String tipinde title ve ikincisi de tamamlanıp tamamlanmadığını tutacak olan Boolean tipinde done özelliği.

Kod içerisinde Core Data’yı nasıl kullanacağımıza gelirsek…

Öncelikle Core Data’yı import etmemiz gerekiyor. Core Data’yla ilgili işlemleri yapacağımız sayfada import CoreData diyerek başlıyoruz.

Core Data’ya Veri Ekleme

İlk olarak AppDelegate’i çağırıp sonrasında bir bağlam(context) yaratıyoruz. Böylece CoreData işlemi yapacağımızı belirtmiş oluyoruz. Ardından yazılan isimdeki varlığa yeni bir obje ekliyoruz.

Objenin özelliklerine dair değerleri, o özelliklerin başlıklarını vererek ekliyoruz. Bu noktada “setValue(_ value: Any?, forKey key: String)” metodunu kullanıyoruz. “forKey” parametresine özelliğin başlığını ve value parametresine özelliğin değerini veriyoruz.

Objemizin özellik değerlerini de atadıktan sonra artık verimizi kaydedebiliriz.

Core Data’da yaptığımız değişiklikleri kaydederken “context.save()” metodunu do-catch yapısı içerisinde kullanıyoruz. Eğer programın akışı catch bloğuna düşmezse, verimiz özellikleriyle birlikte Core Data’ya kaydedilmiş oluyor.

Core Data’dan Veri Çekme

Core Data’ya daha önce kaydettiğimiz verileri kullanabilmek için verilerimizi çekmemiz gerekiyor.

İlk olarak veri ekleme işleminde de yaptığımız gibi Core Data’ya ulaşıyoruz ve tüm kayıtlı verileri çekmek için bir istek gönderiyoruz.

Sonrasında do-catch yapısı içerisinde tüm verileri çekiyoruz. Çektiğimiz verilerin sayısının sıfırdan büyük olup olmadığı kontrolünden sonra, elde edilen verilerle ilgili işlemlerimizi yapabiliriz. Son olarak, verilerimizin özelliklerini de, “result.value(forKey key: String)” metoduyla aldıktan sonra kullanabiliriz.

Bu yazıda Core Data’ya nasıl veri kaydedildiğini ve daha sonra bu verilerin Core Data’dan nasıl çekildiğini anlatmaya çalıştım.

Umarım yararlı olmuştur 🙂.

--

--