Bladeren bron

添加coredata操作

harry 3 jaren geleden
bovenliggende
commit
65618ac8ed

+ 49 - 0
BFFramework/Classes/PModels/BFCoreDataModel.swift

@@ -0,0 +1,49 @@
+//
+//  BFCoreDataModel.swift
+//  BFFramework
+//
+//  Created by 胡志强 on 2021/11/12.
+//
+
+import Foundation
+import CoreData
+
+let persistentContext = BFDataPersistentManager.shared.persistentContainer.viewContext
+open class BFCoreDataModel: NSObject, NSFetchRequestResult {
+    
+    
+    public class func createModel(modelName:String) -> AnyObject {
+        return NSEntityDescription.insertNewObject(forEntityName: modelName, into: persistentContext)
+    }
+    
+    public func save(){
+        do {
+            try persistentContext.save()
+        } catch {
+            fatalError("不能保存:\(error)")
+        }
+    }
+    
+    public class func getList(fetchRequest:NSFetchRequest<NSFetchRequestResult>) -> [NSFetchRequestResult]?{
+        do {
+            let fetchedObjects = try persistentContext.fetch(fetchRequest)
+            return fetchedObjects
+        }
+        catch {
+            fatalError("不能保存:\(error)")
+        }
+    }
+    
+    
+    public func deleteMode(fetchRequest:NSFetchRequest<NSFetchRequestResult>){
+        do{
+            let fetchedObjects = try persistentContext.fetch(fetchRequest)
+            for info in fetchedObjects{
+                persistentContext.delete(info as! NSManagedObject)
+            }
+            try! persistentContext.save()
+        }catch {
+            fatalError("不能保存:\(error)")
+        }
+    }
+}

+ 36 - 0
BFFramework/Classes/PModels/BFDataPersistentManager.swift

@@ -0,0 +1,36 @@
+//
+//  BFDataPersistentManager.swift
+//  BFFramework
+//
+//  Created by 胡志强 on 2021/11/12.
+//
+
+import Foundation
+import CoreData
+
+class BFDataPersistentManager: NSObject {
+    
+    static let shared = BFDataPersistentManager()
+    
+    lazy var persistentContainer: NSPersistentContainer = {
+        let container = NSPersistentContainer(name: "CoreDataDemo")
+        container.loadPersistentStores(completionHandler: { (storeDescription, error) in
+            if let error = error as NSError? {
+                fatalError("Unresolved error \(error), \(error.userInfo)")
+            }
+        })
+        return container
+    }()
+    
+    func saveContext () {
+        let context = persistentContainer.viewContext
+        if context.hasChanges {
+            do {
+                try context.save()
+            } catch {
+                let nserror = error as NSError
+                fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
+            }
+        }
+    }
+}