Core Data — کلیدی تصورات، NSManagedObject اور فن تعمیر

مصنف: IT Sectr اشاعت: 2026-03-11 مطالعے کا وقت: 11 منٹ

Core Data iOS اور macOS ایپلیکیشنز میں آبجیکٹ گراف کے انتظام کے لیے Apple کا فریم ورک ہے۔ یہ ڈیٹا کی مستقل ذخیرہ کاری، تبدیلیوں کی ٹریکنگ، کارروائیاں واپس لینا اور NSFetchedResultsController کے ذریعے UI انضمام فراہم کرتا ہے۔ Apple Developer دستاویزات (2025) کے مطابق، Core Data ڈیٹابیس نہیں ہے — یہ ایک آبجیکٹ ماڈلنگ پرت ہے جو بطور ڈیفالٹ آبجیکٹ لوڈ اور محفوظ کرنے کے لیے SQLite کو مستقل ذخیرہ کے طور پر استعمال کرتی ہے۔

اہم نکات

  • Core Data iOS/macOS کے لیے ایک ORM فریم ورک ہے جو آبجیکٹ گراف کو منظم کرتا ہے اور انہیں ایک ذخیرہ میں محفوظ کرتا ہے۔
  • NSManagedObjectModel ڈیٹا اسکیما ہے جو Core Data ماڈل میں موجود ہستیوں، خصوصیات اور تعلقات کو بیان کرتا ہے۔
  • NSManagedObjectContext تبدیلیوں کی ٹریکنگ کے ساتھ آبجیکٹ بنانے، پڑھنے، اپ ڈیٹ کرنے اور حذف کرنے کے لیے کام کرنے کی جگہ ہے۔
  • NSPersistentContainer iOS 10+ میں ماڈل، سیاق اور ذخیرہ کو سمیٹنے والا متحد داخلی نقطہ ہے۔
  • NSFetchedResultsController Core Data کو UITableView/UICollectionView کے ساتھ تبدیلیوں پر خودکار اپ ڈیٹ کے ساتھ مربوط کرتا ہے۔

Core Data کیا ہے؟

Core Data ایک آبجیکٹ گراف مینجمنٹ اور مستقل ذخیرہ کاری کا فریم ورک ہے جو Apple کے Cocoa Touch SDK کا حصہ ہے۔ یہ ڈیٹا کے ساتھ کام کرنے کے لیے آبجیکٹ پر مبنی انٹرفیس فراہم کرتا ہے: ڈیولپر ہستیوں، خصوصیات اور تعلقات کے ساتھ کام کرتا ہے، جبکہ Core Data ان آبجیکٹ کو پردے کے پیچھے رلیشنل ڈیٹابیس ریکارڈز میں تبدیل کرتا ہے۔

Core Data Mac OS X 10.4 Tiger (2005) میں macOS کے لیے متعارف کرایا گیا اور iOS 3.0 (2009) میں پورٹ کیا گیا۔ 20 سال سے زیادہ عرصے میں، فریم ورک SQLite پر ایک سادہ تجریدی پرت سے NSPersistentCloudKitContainer کے ذریعے کلاؤڈ سنکرونائزیشن، خودکار سیاق مینجمنٹ کے ذریعے ملٹی تھریڈنگ اور Swift Concurrency کے ذریعے غیر متزامن لوڈنگ کے ساتھ ایک مکمل خصوصیات والے اسٹیک میں تبدیل ہو گیا ہے۔

Slack Community (2025) کے iOS ڈیولپر سروے کے مطابق، Core Data 68% تجارتی iOS ایپلیکیشنز میں مقامی ڈیٹا ذخیرہ کرنے کے لیے استعمال ہوتا ہے۔ پیچیدگی اور پرت دار فن تعمیر پر تنقید کے باوجود، فریم ورک Apple ایپلیکیشنز کے لیے معیار بنا ہوا ہے کیونکہ یہ سسٹم کے ساتھ گہرا انضمام، صفر لاگت (SDK میں شامل) اور iCloud سنکرونائزیشن سپورٹ رکھتا ہے۔

Core Data ڈیٹابیس نہیں ہے

ایک عام غلط فہمی Core Data کو ڈیٹابیس سمجھنا ہے۔ فریم ورک براہ راست SQL سوالات نہیں چلاتا اور DBMS نہیں ہے۔ Core Data ایک آبجیکٹ گراف مینجمنٹ پرت ہے جو مستقل ذخیرہ کاری کے لیے SQLite، Binary یا In-Memory ذخیرہ استعمال کر سکتی ہے۔ تشبیہ: Core Data Hibernate یا Entity Framework کی طرح ہے لیکن Apple کے ماحولیاتی نظام کے لیے، اور اس کے نیچے SQLite Hibernate کے نیچے MySQL کی طرح ہے۔

Core Data کا فن تعمیر: اسٹیک اور اجزاء

Core Data اسٹیک چار باہم جڑے ہوئے اجزاء پر مشتمل ہے: NSManagedObjectModel (ڈیٹا اسکیما)، NSPersistentStoreCoordinator (ذخیرہ کوآرڈینیٹر)، NSManagedObjectContext (ورکنگ سیاق) اور NSPersistentContainer (ایک متحد کنٹینر جو iOS 10 سے تینوں کو یکجا کرتا ہے)۔ NSPersistentContainer اسٹیک کی تخلیق اور ترتیب کو خودکار کرتا ہے۔

ہر جزو سختی سے متعین کردہ کام انجام دیتا ہے۔ NSManagedObjectModel ہستیوں کی وضاحتوں کے ساتھ .xcdatamodeld فائل لوڈ کرتا ہے۔ NSPersistentStoreCoordinator ماڈل کو فزیکل ذخیرہ فائل (SQLite) سے جوڑتا ہے۔ NSManagedObjectContext آبجیکٹ کے ساتھ کام کرنے کے لیے عارضی جگہ فراہم کرتا ہے۔ کنٹینر سب کچھ ایک ابتدائیہ کال میں یکجا کرتا ہے۔

Core Data ذخیرہ کی اقسام

SQLite (NSSQLiteStoreType) زیادہ تر ایپلیکیشنز میں استعمال ہونے والا معیاری ذخیرہ ہے۔ ڈیٹا ACID لین دین کے تعاون کے ساتھ ایک .sqlite فائل میں محفوظ کیا جاتا ہے۔ Binary (NSBinaryStoreType) چھوٹے ڈیٹاسیٹس (چند سو آبجیکٹ تک) کے لیے بائنری فارمیٹ کا ذخیرہ ہے۔ In-Memory (NSInMemoryStoreType) ڈسک پر ذخیرہ کیے بغیر RAM میں عارضی ذخیرہ ہے، جو ٹیسٹنگ اور کیشنگ کے لیے استعمال ہوتا ہے۔

ذخیرہ کی قسمفارمیٹکارکردگیکب استعمال کریں
SQLite.sqliteاعلیپروڈکشن کے لیے معیاری انتخاب
Binary.binaryدرمیانیچھوٹے ڈیٹاسیٹس
In-MemoryRAMزیادہ سے زیادہٹیسٹ، کیش، عارضی ڈیٹا
CloudKitiCloudنیٹ ورک پر منحصرآلات کے درمیان سنکرونائزیشن

ذخیرہ کی قسم NSPersistentStoreDescription کو ابتدائی کرتے وقت ایک لائن میں متعین کی جاتی ہے۔ ڈیولپر آبجیکٹ ہیرا پھیری کوڈ کو تبدیل کیے بغیر یونٹ ٹیسٹ کے لیے SQLite سے In-Memory یا iCloud سنکرونائزیشن کے لیے CloudKit پر سوئچ کر سکتا ہے — Core Data متحد سیاق API کے ذریعے ذخیرہ کی اقسام کے درمیان فرق کو تجرید کرتا ہے۔

NSManagedObject اور NSManagedObjectContext

NSManagedObject تمام Core Data آبجیکٹ کے لیے بنیادی کلاس ہے، جو ایک ہستی کے ریکارڈ کی نمائندگی کرتا ہے۔ ہر منظم آبجیکٹ کا ایک منفرد NSManagedObjectID (مستقل شناخت کنندہ) ہوتا ہے، ایک سیاق سے منسلک ہوتا ہے، اور KVO (Key-Value Observing) کے ذریعے اپنی تبدیلیوں کو ٹریک کرتا ہے۔ ڈیولپر ٹائپ شدہ ہستی کی خصوصیات کی وضاحت کے لیے NSManagedObject کے ذیلی طبقے بناتے ہیں۔

NSManagedObjectContext Core Data کا مرکزی جزو ہے جو تمام آبجیکٹ کارروائیوں کے لیے کام کرنے کی جگہ فراہم کرتا ہے۔ سیاق اضافوں، حذف اور تبدیلیوں کو ٹریک کرتا ہے (تبدیلی کی ٹریکنگ)، undoManager کے ذریعے کارروائیوں کو واپس لینے کی حمایت کرتا ہے، اور محفوظ کرنے کے اطلاع نامے وصول کرنے پر دوسرے سیاقوں سے تبدیلیوں کو خودکار طور پر ضم کرتا ہے۔

سیاق تھریڈ سیفٹی

نجی قطار کا اصول: NSManagedObjectContext .privateQueueConcurrencyType یا .mainQueueConcurrencyType کے ساتھ بنایا جاتا ہے۔ مرکزی سیاق مرکزی UI تھریڈ سے منسلک ہوتا ہے، جبکہ نجی سیاق پس منظر کی قطاروں پر چلتے ہیں۔ ہر سیاق صرف اپنی قطار پر استعمال ہونا چاہیے — دوسرے تھریڈ سے منظم آبجیکٹ تک رسائی کریش کا سبب بنتی ہے۔ parentContext غیر متزامن تحریروں کے لیے سیاقوں کا درجہ بندی منظم کرنے کی اجازت دیتا ہے۔

swift
struct CoreDataStack {
    let container: NSPersistentContainer

    init(name: String) {
        container = NSPersistentContainer(name: name)
        container.loadPersistentStores { _, error in
            if let error = error {
                fatalError("Failed to load store: \(error)")
            }
        }
        container.viewContext.automaticallyMergesChangesFromParent = true
    }

    func backgroundContext() -> NSManagedObjectContext {
        let context = container.newBackgroundContext()
        context.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy
        return context
    }
}

NSPersistentContainer خودکار طور پر viewContext (مرکزی قطار) بناتا ہے اور پس منظر کی کارروائیوں کے لیے newBackgroundContext() فراہم کرتا ہے۔ automaticallyMergesChangesFromParent = true سیٹ کرنا viewContext کو پس منظر کے سیاقوں کے محفوظ کرنے پر خود بخود تبدیلیاں لینے پر مجبور کرتا ہے، دستی ڈیٹا ری فچ کے بغیر UI کو اپ ڈیٹ کرتا ہے۔

مستقل ذخیرہ اور SQLite

NSPersistentStoreCoordinator فزیکل ڈیٹا ذخیرہ کا انتظام کرتا ہے: فائل کھولتا ہے، ماڈل کی بنیاد پر SQLite ٹیبلز بناتا ہے اور اسکیما تبدیل ہونے پر مائیگریشن کرتا ہے۔ NSSQLiteStoreType کے ساتھ NSPersistentStoreDescription کو ابتدائی کرتے وقت، Core Data .xcdatamodeld ماڈل سے مطابقت رکھنے والے اسکیما کے ساتھ SQLite فائل بناتا ہے۔

Core Data SELECT/INSERT/UPDATE کے ذریعے معیاری SQL سوالات استعمال نہیں کرتا۔ اس کے بجائے، یہ ماڈل اور NSFetchRequest کے ذریعے کیے گئے سوالات کی بنیاد پر اندرونی SQL کمانڈز بناتا ہے۔ ڈیولپر سوال کی کارکردگی کو ڈیبگ کرنے کے لیے لانچ آرگیومینٹ -com.apple.CoreData.SQLDebug 1 کے ساتھ SQL لاگنگ کو فعال کر سکتا ہے۔

Core Data مائیگریشن

ہلکی مائیگریشن (Lightweight Migration) نئی خصوصیات شامل کرنے، optional/required فلیگز تبدیل کرنے یا renamingID کے ساتھ نام بدلنے پر SQLite اسکیما کو خودکار طور پر اپ ڈیٹ کرنے کا عمل ہے۔ بھاری مائیگریشن اسکیما کی بنیادی تبدیلیوں جیسے ہستیوں کو ضم کرنے یا تقسیم کرنے کے لیے ضروری ہے اور یہ کسٹم NSMigrationManager کے ذریعے کی جاتی ہے۔

swift
let description = NSPersistentStoreDescription()
description.url = FileManager.default
    .urls(for: .documentDirectory, in: .userDomainMask)
    .first?
    .appendingPathComponent("Model.sqlite")
description.setOption(true as NSNumber,
    forKey: NSMigratePersistentStoresAutomaticallyOption)
description.setOption(true as NSNumber,
    forKey: NSInferMappingModelAutomaticallyOption)

let container = NSPersistentContainer(name: "AppModel")
container.persistentStoreDescriptions = [description]
container.loadPersistentStores { _, error in
    if let error = error { print("Migration error: \(error)") }
}

NSMigratePersistentStoresAutomaticallyOption اور NSInferMappingModelAutomaticallyOption کے ذریعے خودکار مائیگریشن ترتیب دینے سے Core Data ماڈل کے نئے ورژن میں خصوصیات یا ہستیاں شامل کرنے پر SQLite فائل کو آزادانہ طور پر اپ ڈیٹ کر سکتا ہے۔ اگر مائیگریشن ممکن نہ ہو تو، ذخیرہ کوآرڈینیٹر وجہ کی وضاحت کے ساتھ خرابی پھینکتا ہے — ڈیولپر کو NSMigrationManager کے ذریعے کسٹم مائیگریشن لاگو کرنا چاہیے۔

Core Data عملی طور پر: کوڈ اور مثالیں

NSFetchRequest Core Data سے آبجیکٹ حاصل کرنے کا بنیادی آلہ ہے۔ ایک درخواست میں ہستی کا نام، پیش گو (فلٹر)، ترتیب کے وضاحت کنندگان، حد اور آفسیٹ شامل ہوتا ہے۔ نتیجہ NSManagedObject یا ٹائپ شدہ ذیلی طبقوں کی صف کے طور پر لوٹایا جاتا ہے۔ NSPredicate AND، OR، IN، LIKE اور ذیلی سوالات کے ساتھ پیچیدہ شرائط کو سپورٹ کرتا ہے۔

NSBatchDeleteRequest ہر آبجیکٹ کو میموری میں لوڈ کیے بغیر بڑی تعداد میں حذف کرنے کا موثر طریقہ ہے۔ درخواست SQLite سطح پر عمل درآمد ہوتی ہے، منظم آبجیکٹ سیاق کو نظرانداز کرتی ہے، اور مکمل ہونے کے بعد ہی سیاق کو اپ ڈیٹ کرتی ہے۔ اپ ڈیٹ (NSBatchUpdateRequest) اور اندراج (NSBatchInsertRequest) کے لیے اسی طرح کی بیچ درخواستیں موجود ہیں۔

CRUD کارروائیوں کی مثال

CRUD (تخلیق، پڑھنا، اپ ڈیٹ، حذف) Core Data میں سیاق کے طریقوں کے ذریعے انجام دیا جاتا ہے: insert، fetch، save اور delete۔ تمام تبدیلیاں context.save() کال کرنے تک عارضی ہوتی ہیں — یہ طریقہ تبدیلیوں کو مستقل SQLite ذخیرہ میں محفوظ کرتا ہے۔ محفوظ کرنے کی خرابی پر، سیاق دوبارہ کوشش کے لیے اپنی تبدیل شدہ حالت میں رہتا ہے۔

swift
let context = container.viewContext

// بنائیں
let user = User(context: context)
user.id = 42
user.name = "Alice"

// پڑھیں
let request = User.fetchRequest()
request.predicate = NSPredicate(format: "name CONTAINS %@", "Ali")
request.sortDescriptors = [NSSortDescriptor(key: "name", ascending: true)]
let results = try context.fetch(request)

// اپ ڈیٹ کریں
results.first?.name = "Alice Updated"

// حذف کریں
if let first = results.first { context.delete(first) }

// محفوظ کریں
try context.save()

سیاق کو محفوظ کرنا (context.save()) ایک اہم کارروائی ہے۔ اگر save نہ کہا جائے تو تمام تبدیلیاں صرف میموری میں رہتی ہیں۔ سیاق hasChanges حالت کو ٹریک کرتا ہے، جسے محفوظ کرنے سے پہلے چیک کیا جا سکتا ہے۔ پس منظر کی کارروائیوں کے لیے، اپنے محفوظ کرنے کے ساتھ newBackgroundContext استعمال کریں، اور UI کے لیے، ٹائمر پر یا ایپ کے پس منظر میں جانے پر خودکار محفوظ کرنے کے ساتھ viewContext استعمال کریں۔

Core Data کے بہترین طریقے

پہلا طریقہ — صارف کے آلات کے درمیان iCloud کے ذریعے ڈیٹا سنکرونائز کرنے کے لیے NSPersistentCloudKitContainer استعمال کریں۔ کلاؤڈ سنکرونائزیشن مستقل ذخیرہ کی وضاحت میں CloudKit آپشن شامل کرکے فعال کی جاتی ہے۔ Core Data خود بخود سنکرونائزیشن کے تنازعات کا انتظام کرتا ہے اور دوسرے آلات سے تبدیلیوں کو ضم کرتا ہے۔

دوسرا طریقہ — بڑی میزوں پر پیش گو کے بغیر fetchRequest سے پرہیز کریں۔ ہر غیر مشروط فیچ تمام ہستی کے آبجیکٹ کو میموری میں لوڈ کرتا ہے، جس سے RAM کا زیادہ استعمال اور UI سست روی ہوتی ہے۔ ہمیشہ پیش گو اور حدود استعمال کریں۔ صفحہ بندی کے لیے، NSFetchRequest میں fetchLimit اور fetchOffset استعمال کریں۔

تیسرا طریقہ — ملٹی تھریڈڈ رسائی میں تنازعات حل کرنے کے لیے mergePolicy ترتیب دیں۔ NSMergeByPropertyObjectTrumpMergePolicy آخری محفوظ کردہ سیاق سے متصادم خصوصیات کو اپ ڈیٹ کرتا ہے۔ NSRollbackMergePolicy تنازع پر موجودہ سیاق کی تبدیلیوں کو رد کر دیتا ہے۔ پالیسی کا انتخاب ایپلیکیشن کے کاروباری منطق پر منحصر ہے۔

چوتھا طریقہ — ٹیبل اور کلیکشن انضمام کے لیے NSFetchedResultsController استعمال کریں۔ یہ خود بخود NSManagedObjectContextDidSave اطلاع ناموں کو سبسکرائب کرتا ہے، صرف ضروری آبجیکٹ لوڈ کرتا ہے (faulting)، اور UITableView اینیمیشن کے لیے مناسب انڈیکس پاتھ کے ساتھ اندراج، حذف اور منتقلی کے بارے میں ڈیلیگیٹ کو مطلع کرتا ہے۔

کارکردگی: پریفچنگ اور فالٹنگ

فالٹنگ Core Data کا سست لوڈنگ میکانزم ہے۔ فیچ درخواست کے ذریعے لوٹایا گیا منظم آبجیکٹ فالٹ حالت میں ہے — اس کی خصوصیات مکمل طور پر لوڈ نہیں ہوئیں، صرف شناخت کنندہ۔ مکمل لوڈنگ (فائر فالٹ) کسی بھی خصوصیت تک پہلی رسائی پر ہوتی ہے۔ ریلیشن شپ پریفچنگ (setRelationshipKeyPathsForPrefetching) متعلقہ آبجیکٹ کو پیشگی لوڈ کرتا ہے، N+1 سوالات سے بچتا ہے۔

swift
extension UserRepository {
    func fetchUsersWithPosts() throws -> [User] {
        let request = User.fetchRequest()
        request.predicate = NSPredicate(format: "isActive == YES")
        request.relationshipKeyPathsForPrefetching = ["posts"]
        request.returnsObjectsAsFaults = false
        request.fetchBatchSize = 20

        let context = container.viewContext
        return try context.fetch(request)
    }
}

fetchBatchSize = 20 Core Data کو ایک بار میں پوری ٹیبل لوڈ کیے بغیر 20 آبجیکٹ کے بیچ میں ڈیٹا لوڈ کرنے (اسکرین ڈسپلے کے لیے) پر مجبور کرتا ہے۔ returnsObjectsAsFaults = false فلیگ اس بات کو یقینی بناتا ہے کہ تمام صارف کی خصوصیات فوری طور پر لوڈ ہو جائیں، جو براہ راست ڈسپلے کے لیے مفید ہے۔ “posts” تعلق کی پریفچنگ پوسٹس تک رسائی کے وقت ہر صارف کے لیے علیحدہ سوالات سے بچتی ہے۔

اکثر پوچھے گئے سوالات

کیا Core Data ایک ڈیٹابیس ہے؟

نہیں، Core Data ایک آبجیکٹ گراف مینجمنٹ فریم ورک ہے۔ یہ آبجیکٹ کے ساتھ کام کرنے، تبدیلیوں کو ٹریک کرنے اور انہیں محفوظ کرنے کے لیے API فراہم کرتا ہے۔ Core Data کے پیچھے ڈیٹابیس (بطور ڈیفالٹ SQLite) کو خود فریم ورک کے ساتھ الجھانا نہیں چاہیے۔ Core Data ایک ORM ہے، DBMS نہیں۔

کیا Core Data کو SQLite کے بغیر استعمال کیا جا سکتا ہے؟

ہاں، Core Data تین اقسام کے ذخیرہ کو سپورٹ کرتا ہے: SQLite، Binary اور In-Memory۔ ذخیرہ کی قسم NSPersistentStoreDescription کے ذریعے متعین کی جاتی ہے۔ In-Memory ذخیرہ ڈیٹا کو ڈسک پر محفوظ نہیں کرتا اور یونٹ ٹیسٹ کے لیے موزوں ہے۔ Binary ذخیرہ کمپیکٹ آبجیکٹ سیٹس کے لیے ایک پرانا فارمیٹ ہے۔

Core Data کو ماڈل کے نئے ورژن میں کیسے منتقل کریں؟

ہلکی مائیگریشن کے لیے، NSMigratePersistentStoresAutomaticallyOption اور NSInferMappingModelAutomaticallyOption کو فعال کریں۔ پیچیدہ تبدیلیوں کے لیے، Xcode کے ذریعے Mapping Model (.xcmappingmodel) بنائیں۔ CloudKit ذخیرہ (NSPersistentCloudKitContainer) iCloud سرور کے ساتھ اسکیما سنک کرتے وقت خود بخود مائیگریشن کو سپورٹ کرتا ہے۔

Core Data SwiftData سے کیسے مختلف ہے؟

SwiftData ایک نیا Apple فریم ورک (iOS 17+) ہے جو Swift Macros اور Swift Concurrency کا استعمال کرتے ہوئے Core Data کے اوپر بنایا گیا ہے۔ SwiftData کا نحو آسان ہے: ہستیوں کو @Model میکرو کے ساتھ بیان کیا جاتا ہے، سیاق کو @Environment(\.modelContext) کے ساتھ۔ پردے کے پیچھے، SwiftData وہی Core Data اسٹیک اور SQLite استعمال کرتا ہے۔

سست Core Data سوالات کو کیسے ڈیبگ کریں؟

لانچ آرگیومینٹ -com.apple.CoreData.SQLDebug 1 کو فعال کریں — Core Data Xcode کنسول میں تمام SQL سوالات اور ان کی مدت ظاہر کرے گا۔ پروفائلنگ کے لیے، Core Data ٹیمپلیٹ کے ساتھ Instruments استعمال کریں، جو فالٹ درخواستوں کی تعداد، آبجیکٹ لوڈ ہونے کے اوقات اور سیاق محفوظ کرنے کی مدت دکھاتا ہے۔

خلاصہ

  • Core Data iOS اور macOS کے لیے آبجیکٹ گراف مینجمنٹ اور مستقل ذخیرہ کاری کا فریم ورک ہے، جو SQLite کو بطور ڈیفالٹ ذخیرہ استعمال کرتا ہے۔
  • Core Data اسٹیک میں متحد ترتیب کے لیے NSManagedObjectModel، NSPersistentStoreCoordinator، NSManagedObjectContext اور NSPersistentContainer شامل ہیں۔
  • NSManagedObjectContext تبدیلیوں کی ٹریکنگ، واپس لینے کی حمایت اور پس منظر کے سیاقوں سے خودکار ضم کرنے کے ساتھ کام کرنے کی جگہ ہے۔
  • NSFetchRequest NSPredicate اور ریلیشن شپ پریفچنگ کے ساتھ بنیادی فیچ ٹول ہے، جو بیچ سائز اور فالٹنگ کے ذریعے بہتر بنایا گیا ہے۔
  • ہلکی مائیگریشن ماڈل کے نئے ورژن میں خصوصیات اور ہستیاں شامل کرنے پر خود بخود SQLite اسکیما کو اپ ڈیٹ کرتی ہے۔
  • NSPersistentCloudKitContainer خودکار تنازع حل کے ساتھ صارف کے آلات کے درمیان iCloud سنکرونائزیشن شامل کرتا ہے۔
  • سفارش — درجہ بندی آبجیکٹ ماڈل والی iOS ایپلیکیشنز کے لیے Core Data استعمال کریں؛ سادہ مقامی ذخیرہ کے لیے، GRDB یا SwiftData پر غور کریں۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں