我想将数据存储为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)")
}
}
答案 0 :(得分:0)
如果我理解你的问题。
选择xcdatamodeld - &gt;您的实体 - &gt;数据模块检查器 - &gt;模块
如果是当前产品模块,请将其更改为全局命名空间