Skip to content

Instantly share code, notes, and snippets.

@vani2
Created February 17, 2017 07:43
Show Gist options
  • Select an option

  • Save vani2/19de82fb9a8d6fb311b72cd05b4bd3bd to your computer and use it in GitHub Desktop.

Select an option

Save vani2/19de82fb9a8d6fb311b72cd05b4bd3bd to your computer and use it in GitHub Desktop.
CoreData relationships
// сущность Core Data
// CDEntry: NSManagedObject
class CDFolder: CDEntry {
@NSManaged var name: String?
@NSManaged var messages: [CDMessage]?
//...
}
class FolderCoreDataTranslator: CoreDataTranslator<CDFolder, Folder> {
override func toEntity(_ entry: CDFolder) -> Folder {
let messages = MessageCoreDataTranslator().toEntities(entry.messages)
return Folder(entityId: entry.entryId, name: entry.name, messages: messages)
}
//context нужен для создания сущностей
override func toEntry(_ entity: Folder, context: NSManagedObjectContext) -> CDFolder {
let entityDescription = NSEntityDescription.entity(forEntityName: "CDFolder", in: context)!
let dbFolder = CDFolder(entity: entityDescription, insertInto: context)
dbFolder.entryId = entity.entityId
dbFolder.name = entity.name
dbFolder.messages = MessageCoreDataTranslator().toEntries(entity.messages, context: context)
return dbFolder
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment