Swift Core Data 是一個強大的框架,可以讓開發者輕鬆地將資料儲存在iOS和macOS上。它可以讓你建立複雜的資料模型,並且提供了一個容易使用的API來存取資料。

在開始使用Swift Core Data之前,你需要先建立一個Data Model,它是一個描述你的資料模型的檔案,它可以包含多個Entity,每個Entity可以有多個Attribute,每個Attribute可以有不同的屬性,例如:StringIntegerBoolean等等。

建立Data Model

要建立Data Model,你可以在Xcode中新增一個新的檔案,然後選擇Core Data,然後選擇Data Model,然後給它一個名字,例如MyDataModel,然後按下Create按鈕。

建立Entity

接下來,你可以在Data Model中建立一個Entity,你可以按下右上角的+按鈕,然後選擇New Entity,然後給它一個名字,例如User,然後按下Create按鈕。

建立Attribute

接下來,你可以在Entity中建立Attribute,你可以按下右上角的+按鈕,然後選擇New Attribute,然後給它一個名字,例如name,然後選擇它的屬性,例如String,然後按下Create按鈕。

建立Managed Object Model

接下來,你可以建立一個Managed Object Model,它是一個對應你的Data Model的物件,你可以在你的AppDelegate中建立它,例如:

let managedObjectModel: NSManagedObjectModel = {
    let modelURL = Bundle.main.url(forResource: "MyDataModel", withExtension: "momd")!
    return NSManagedObjectModel(contentsOf: modelURL)!
}()

建立Persistent Store Coordinator

接下來,你可以建立一個Persistent Store Coordinator,它是一個對應你的Managed Object Model的物件,你可以在你的AppDelegate中建立它,例如:

let persistentStoreCoordinator: NSPersistentStoreCoordinator = {
    let coordinator = NSPersistentStoreCoordinator(managedObjectModel: managedObjectModel)
    let url = applicationDocumentsDirectory.appendingPathComponent("MyDataModel.sqlite")
    let failureReason = "There was an error creating or loading the application's saved data."
    do {
        try coordinator.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: url, options: nil)
    } catch {
        var dict = [String: AnyObject]()
        dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data" as AnyObject?
        dict[NSLocalizedFailureReasonErrorKey] = failureReason as AnyObject?
        dict[NSUnderlyingErrorKey] = error as NSError
        let wrappedError = NSError(domain: "YOUR_ERROR_DOMAIN", code: 9999, userInfo: dict)
        NSLog("Unresolved error \(wrappedError), \(wrappedError.userInfo)")
        abort()
    }
    return coordinator
}()

建立Managed Object Context

最後,你可以建立一個Managed Object Context,它是一個對應你的Persistent Store Coordinator的物件,你可以在你的AppDelegate中建立它,例如:

let managedObjectContext: NSManagedObjectContext = {
    let coordinator = persistentStoreCoordinator
    var managedObjectContext = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType)
    managedObjectContext.persistentStoreCoordinator = coordinator
    return managedObjectContext
}()

現在你已經建立了一個完整的Swift Core Data架構,你可以開始使用它來儲存和讀取資料了!

推薦閱讀文章

Getting Started with Core Data Tutorial
Core Data and Concurrency
Core Data on iOS Tutorial: Getting Started
Core Data Tutorial: Getting Started (Part 2)
Core Data Tutorial: Getting Started (Part 3)</a

延伸閱讀本站文章

更多swift相關文章

推薦學習youtube影片

Swift Core Data 實現 💾🔥

Categorized in:

Tagged in:

,