//
//  MPCoreDataHandlerManager.swift
//  MusicPlayer
//
//  Created by Mr.Zhou on 2024/4/1.
//

import Foundation
import CoreData

///CoreData数据库处理器
class MPCoreDataHandlerManager {
    //单例工具
    static let shared = MPCoreDataHandlerManager()
    //数据仓库
    private lazy var persistentContainer: NSPersistentContainer = {
        //数据仓库名为XXX.cdatamodeld中的XXX
        let container = NSPersistentContainer(name: "MusicPlayer")
        container.loadPersistentStores { (_, error) in
            if let error = error {
                //加载数据仓库失败
                fatalError("Failed to load persistent stores: \(error)")
            }else {
                //加载数据仓库成功
                print("Successfully to load persistent stores")
            }
        }
        return container
    }()
    //托管（映射）对象空间
    var context: NSManagedObjectContext {
        return persistentContainer.viewContext
    }
    //保存对象空间
    func saveContext() {
        //检索对象空间是否进行了更新
        if context.hasChanges {
            do {
                //保存对象空间
                try context.save()
            } catch {
                //保存失败
                let nserror = error as NSError
                fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
            }
        }
    }
}
