Skip to content

Instantly share code, notes, and snippets.

@murilogteixeira
Last active January 19, 2020 00:50
Show Gist options
  • Save murilogteixeira/38becd5574183e72969d3e2bb93a8309 to your computer and use it in GitHub Desktop.
Save murilogteixeira/38becd5574183e72969d3e2bb93a8309 to your computer and use it in GitHub Desktop.
Tutorial CRUD CoreData example
//
// ViewController.swift
// CoreDataTutorial
//
// Created by Murilo Teixeira on 18/01/20.
// Copyright © 2020 Murilo Teixeira and Fábio França. All rights reserved.
//
import UIKit
import CoreData
class ViewController: UIViewController {
var appDelegate: AppDelegate!
var context: NSManagedObjectContext!
override func viewDidLoad() {
super.viewDidLoad()
appDelegate = UIApplication.shared.delegate as? AppDelegate
context = appDelegate.persistentContainer.viewContext
salvar()
recuperar()
atualizar()
deletar()
}
func salvar() {
let usuarioEntidade = NSEntityDescription.entity(forEntityName: "Usuario", in: context)!
let usuario = NSManagedObject(entity: usuarioEntidade, insertInto: context)
usuario.setValue("Fábio Franca", forKey: "nome")
usuario.setValue(20, forKey: "idade")
usuario.setValue("fabio", forKey: "login")
usuario.setValue("1234", forKey: "senha")
do {
try context.save()
print("dados salvos corretamente!!!" )
}
catch {
print("erro ao salvar os dados")
}
}
func recuperar() {
let requisicao = NSFetchRequest<NSFetchRequestResult>(entityName: "Usuario")
do {
let resultado = try context.fetch(requisicao)
if resultado.count > 0 {
//...
}
else{
print("nenhum usuario encontrado")
}
}
catch {
print("Erro ao recuperar os usuarios")
}
do {
let usuarios = try context.fetch(requisicao)
if usuarios.count > 0 {
for usuario in usuarios as! [NSManagedObject]{
let nomeUsuario = usuario.value(forKey: "nome") as! String
let idadeUsuario = usuario.value(forKey: "idade") as! Int
let senhaUsuario = usuario.value(forKey: "senha") as! String
let loginUsuario = usuario.value(forKey: "login") as! String
print("nome ", nomeUsuario)
print("idade", idadeUsuario)
print("senha", senhaUsuario)
print("login", loginUsuario)
print("dados recuperados com sucesso")
}
}
else {
print("nenhum usuario encontrado")
}
}
catch {
print("Erro ao recuperar os usuarios")
}
}
func atualizar() {
let requisicao = NSFetchRequest<NSFetchRequestResult>(entityName: "Usuario")
let predicateContains = NSPredicate(format: "nome contains [c] %@", "fábio")
requisicao.predicate = predicateContains
do {
let usuarios = try context.fetch(requisicao)
if usuarios.count > 0 {
for usuario in usuarios as! [NSManagedObject]{
usuario.setValue(25, forKey: "idade")
do {
try context.save()
let nomeUsuario = usuario.value(forKey: "nome") as! String
let idadeUsuario = usuario.value(forKey: "idade") as! Int
let senhaUsuario = usuario.value(forKey: "senha") as! String
let loginUsuario = usuario.value(forKey: "login") as! String
print("nome ", nomeUsuario)
print("idade", idadeUsuario)
print("senha", senhaUsuario)
print("login", loginUsuario)
print("dados atualizados com sucesso")
}
catch {
print("erro ao atualizar os dados do usuário")
}
}
}
else{
print("nenhum usuario encontrado")
}
}
catch {
print("Erro ao recuperar os usuarios")
}
}
func deletar() {
let requisicao = NSFetchRequest<NSFetchRequestResult>(entityName: "Usuario")
let predicateContains = NSPredicate(format: "nome contains [c] %@", "fábio")
requisicao.predicate = predicateContains
do {
let usuarios = try context.fetch(requisicao)
if usuarios.count > 0 {
for usuario in usuarios as! [NSManagedObject]{
context.delete(usuario)
do {
try context.save()
print("dados deletados corretamente!!!" )
}
catch {
print("erro ao deletar os dados")
}
}
}
else {
print("nenhum usuario encontrado")
}
}
catch {
print("Erro ao recuperar os usuarios")
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment