簡體   English   中英

如何在iOS中的數據模型中存儲Core數據中的數據,並獲取數據模型的格式

[英]How to store data in Core data from Data model in iOS and get in the format of data model

我想將數據存儲在iOS中作為數據模型。 我正在嘗試這個,但它不起作用。

我的數據模型類

class FileSaveModel: NSManagedObject {
    @NSManaged var id: String
    @NSManaged var name: String
    @NSManaged var path: String
    @NSManaged var time: String
    @NSManaged var type: String
    @NSManaged var uid: String

    // TODO: - Need to get the use of this
   // lazy var uidd: NSManagedObjectID = NSManagedObjectID()

    override init(entity: NSEntityDescription, insertInto context: NSManagedObjectContext?) {
        super.init(entity: entity, insertInto: context)
    }

    init(name:String, path: String, contentType: ContentType, entity: NSEntityDescription, insertInto context: NSManagedObjectContext?) {
        super.init(entity: entity, insertInto: context)

        self.path = path
        self.name = name
        self.type = contentType.rawValue
        self.time = "\(NSDate())"
        self.uid = "56"
        self.id = "789"
    }
}

像這樣保存

func save(name: String, path: String, type: ContentType, modelContent: ModelTest)  {

        guard let entity = self.entityWith(name: entityName) else {
            return
        }

當我嘗試用此保存時,它可以節省

//let modelFile = FileSaveModel(name: name, path: path, contentType: //type, entity: entity, insertInto: appDelegate.context())

但是這個錯誤“錯誤”無法將NSManagedObject轉換為FileSaveModel“

        let model = NSEntityDescription.insertNewObject(forEntityName: entityName, into: appDelegate.context()) as! FileSaveModel

        model.name = name
        model.path = path
        model.type = type.rawValue

        save(model: model, modelContent: modelContent)
    }

    func save(model: FileSaveModel, modelContent: ModelTest) {

        do {
            try appDelegate.context().save()
            print("Save successful")
        } catch {
            fatalError("Failure to save context: \(error)")
        }
    }

獲取這樣的數據但不返回FileSaveModel數組只返回NSManagedObject數組

func fetchAllModels() {
        let fetchItems = NSFetchRequest<NSFetchRequestResult>(entityName: entityName)

        do {

            let fetchedItems = try appDelegate.context().fetch(fetchItems) as! [FileSaveModel]

            if fetchedItems.count>0 {
                print(fetchedItems[0].name)
            }

        } catch {
            fatalError("Failed to fetch: \(error)")
        }
    }

如果我理解你的問題。

選擇xcdatamodeld - >您的實體 - >數據模塊檢查器 - >模塊

如果是當前產品模塊,則將其更改為全局命名空間

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM