Core Data क्या है और इसकी आवश्यकता क्यों है?
Core Data कोई सामान्य लाइब्रेरी नहीं है (जैसे Alamofire या SnapKit), बल्कि Apple का एक शक्तिशाली फ्रेमवर्क है जो iOS, macOS, tvOS और watchOS ऐप्स में डेटा मॉडल मैनेज करने और डेटा को स्थायी रूप से सेव (persist) करने के लिए उपयोग होता है। यह SDK में बिल्ट-इन आता है और इसे CocoaPods या Swift Package Manager जैसे पैकेज मैनेजर से अलग से इंस्टॉल करने की जरूरत नहीं है।
Core Data की आवश्यकता क्यों है? आधुनिक मोबाइल ऐप डेवलपमेंट में लगभग हमेशा डेटा को लोकल स्टोर करना पड़ता है - चाहे वह टास्क लिस्ट हो, मैसेज हिस्ट्री हो, यूज़र सेटिंग्स हों या न्यूज़ कैश। Core Data इसके लिए एक पूरा स्टैक प्रदान करता है जिसमें शामिल हैं:
- डेटा मॉडल (NSManagedObjectModel) — एंटिटी, उनके एट्रीब्यूट और रिलेशनशिप का विवरण।
- कॉन्टेक्स्ट (NSManagedObjectContext) — एक "ड्राफ्ट" जहां आप ऑब्जेक्ट्स को सेव करने से पहले उनके साथ काम करते हैं।
- Persistent Store Coordinator — कॉन्टेक्स्ट और फिजिकल स्टोरेज (SQLite, XML, बाइनरी फाइल आदि) के बीच पुल।
- Persistent Container — एक सरल रैपर (iOS 10 में आया) जो सभी कंपोनेंट्स को जोड़ता है।
SQLite या UserDefaults के सीधे उपयोग के विपरीत, Core Data ऑटोमैटिकली ऑब्जेक्ट्स के लाइफसाइकल को मैनेज करता है, चेंजेस को रोलबैक करने, लेज़ी लोडिंग, कैशिंग, वैलिडेशन और iCloud के साथ इंटीग्रेशन को सपोर्ट करता है। यह इसे किसी भी गंभीर डेटा-आधारित ऐप के लिए एक अपरिहार्य टूल बनाता है।
Core Data की स्थापना (Installation)
Core Data Apple के सिस्टम फ्रेमवर्क का हिस्सा है। आपको pip install या npm install चलाने की जरूरत नहीं है। इसका उपयोग करने के लिए बस अपने प्रोजेक्ट में फ्रेमवर्क को इम्पोर्ट करना होगा।
1. प्रोजेक्ट में फ्रेमवर्क जोड़ना
Xcode में नया प्रोजेक्ट बनाते समय आप "Use Core Data" चेकबॉक्स चुन सकते हैं। अगर प्रोजेक्ट पहले से मौजूद है, तो मैन्युअली फ्रेमवर्क जोड़ें:
- नेविगेटर (Project Navigator) में अपना प्रोजेक्ट चुनें।
- अपने टार्गेट (Target) के "General" टैब पर जाएं।
- "Frameworks, Libraries, and Embedded Content" सेक्शन तक नीचे स्क्रॉल करें।
- "+" बटन दबाएं और
CoreData.frameworkचुनें।
2. डेटा मॉडल फाइल बनाना
आपको .xcdatamodeld एक्सटेंशन वाली फाइल की भी आवश्यकता होगी। यह आमतौर पर Core Data चालू करने पर ऑटोमैटिक बन जाती है। अगर नहीं है, तो नई फाइल बनाएं: File → New → File → Core Data → Data Model.
3. कोड में इम्पोर्ट करना
Swift फाइलों में जहां आप Core Data के साथ काम करेंगे, यह जोड़ें:
import CoreData
इसके साथ ही इंस्टॉलेशन पूरा हो गया। Core Data उपयोग के लिए तैयार है।
त्वरित शुरुआत: कोड उदाहरण
एक सरल उदाहरण देखते हैं: "User" नामक एंटिटी बनाना जिसमें "name" और "age" एट्रीब्यूट हों, और डेटा को सेव और रीड करना।
चरण 1: डेटा मॉडल बनाएं
.xcdatamodeld फाइल खोलें। "User" नाम से एक एंटिटी (Entity) जोड़ें। एट्रीब्यूट जोड़ें: name (टाइप String) और age (टाइप Int16)। इस एंटिटी के लिए क्लास बनाएं: Editor → Create NSManagedObject Subclass. Xcode User+CoreDataProperties.swift और User+CoreDataClass.swift फाइलें जनरेट करेगा।
चरण 2: Persistent Container सेट करें
AppDelegate (या अलग मैनेजर) में कंटेनर बनाएं:
import CoreData
class PersistenceController {
static let shared = PersistenceController()
let container: NSPersistentContainer
init() {
container = NSPersistentContainer(name: "YourModelName") // आपकी .xcdatamodeld फाइल का नाम
container.loadPersistentStores { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
}
}
var context: NSManagedObjectContext {
return container.viewCont