Caixa do Autor


Discuta o seu projeto

Sobre Nós

Somos o parceiro Microsoft Gold com presença nos Estados Unidos e na Índia. Somos um provedor de serviços de TI dinâmico e profissional que atende empresas e startups, ajudando-as a enfrentar os desafios da economia global. Oferecemos serviços na área de Consultoria e implementação de CRM, Desenvolvimento de aplicações, Desenvolvimento de aplicações mobile, Desenvolvimento Web e Desenvolvimento Offshore.

Dados principais com Swift

Introdução ao Core Data (CRUD) com Swift

By Subodh Dharmwan / 27 de janeiro de 2022

3 de novembro de 2022
Introdução ao Core Data (CRUD) com Swift

Dados principais é um framework gráfico e de persistência, que é usado em dispositivos Apple com sistemas operacionais macOS e iOS. Dados principais foi introduzido pela primeira vez no Mac OS X 10.4 Tiger e iOS com iPhone SDK 3.0. Permite dados, para ser organizado em uma forma de modelo de entidade-atributo relacional, para que possa ser serializado em repositórios XML, binários ou SQLite.

Você pode utilizar dados principais para salvar o seu aplicativo dados permanentes para uso offline, para armazenar dados temporários em cache e adicionar a funcionalidade de desfazer ao seu aplicativo em um único dispositivo.

Core Data reflete automaticamente seu esquema para um CloudKitName container para sincronizar dados em vários dispositivos em uma única conta do iCloud.

Você pode especificar os tipos e relacionamentos de seus dados e desenvolver as respectivas definições de classe. O Core Data pode gerenciar instâncias de objeto em tempo de execução por meio do editor de modelo de dados do Core Data.

O Core Data tem certas desvantagens, pois só pode armazenar dados depois de inseridos, o que não é como um banco de dados SQL típico. 

Em outras palavras, o Core Data mantém um gráfico de objeto na memória, portanto, só pode trabalhar com registros na memória. Você pode entender isso como, suponha que você queira excluir ou atualizar 100 registros, então primeiro você precisa carregar todos os registros na memória.

Anteriormente, o Core Data tinha alguns problemas com o multithreading, mas ao longo dos anos as melhorias no desenvolvimento do Core Data o tornaram compatível com o multithreading.

Desfazer e refazer alterações individuais ou em lote

Dados principais tem essa característica de desfazer e refazer. O gerenciador de desfazer rastreia as alterações que ocorrem nos dados e pode revertê-las sempre que necessário. Isso facilita muito o trabalho do desenvolvedor. 

Ver Sincronização

CoreData fornece visualização de tabela e visualização de coleção que são úteis quando você deseja sincronizar suas visualizações e dados.

Versionamento e migração

CoreData ajuda você a versionar seu modelo de dados e migração de dados do usuário com a evolução do aplicativo.

Tarefas de dados em segundo plano

CoreData executa Tarefas de dados de bloqueio de interface do usuário, como analisar JSON em objetos, mas em segundo plano, que pode ser armazenado em cache ou armazenado para reduzir as viagens de ida e volta do servidor.

Além disso, leia: Desenvolvimento nativo de aplicativos móveis: prós, contras, alternativas e otimização de custos

CURD em swift (Criar, Atualizar, Recuperar, Excluir)

Vamos criar um novo projeto para entender como funciona o Core Data e vamos selecionar “Usar dados principais”. Você também pode adicionar Core Data ao seu projeto posteriormente, mas isso é mais fácil, pois tudo será servido para você.

Criar projeto com Use Core Data

Uma vez que o projeto é criado, você verá um arquivo como CoreDataTest.xcdatamodeld já criado, você também pode adicionar o arquivo a um projeto existente.

Adicionar entidade

Depois de clicar nele, você verá uma ferramenta. Esta ferramenta permite configurar entidades, estas entidades representam modelos de dados.

Aqui você pode definir algumas das coisas para cada entidade, mas lembre-se que Atributos e Relacionamentos será o mais importante.

Configurar o nome e os atributos da entidade

Pilha de dados principais

No interior do Delegado de aplicativo, Código da pilha de dados principal tem documentação clara em forma de comentários, configura o contêiner persistente e salva os dados e, se houver alguma alteração, eles são salvos.

Você pode salvar e buscar facilmente o contexto do Core Data Stack porque Delegado de aplicativo é o primeiro arquivo executado assim que o aplicativo é iniciado.

Como você transformou nossos dados na entidade User, agora você pode adicionar alguns registros e salvá-los no CoreData.

Além disso, leia: O guia para desenvolver e adotar uma estratégia de aplicativos móveis para empresas

Salvando registros em dados principais

O procedimento de adicionar os registros ao Core Data inclui as seguintes tarefas:

  • Consulte o contêiner persistente
  • Crie o contexto
  • Criar uma entidade
  • Criar novo registro
  • Para cada chave, você precisa definir valores para os registros.

Uma vez que o recipiente está instalado no Delegados de aplicativos. Portanto, você precisa se referir a esse contêiner.

let appDelegate = UIApplication.shared.delegate as! AppDelegate

Vamos criar um contexto a partir deste contêiner.

let context = appDelegate.persistentContainer.viewContext

Vamos criar uma entidade e novos registros de usuário.

let entity = NSEntityDescription.entity(forEntityName: "Users", in: context)
let newUser = NSManagedObject(entity: entity!, insertInto: context)

Por fim, adicione alguns dados ao seu registro recém-criado.

newUser.setValue("Abhishek", forKey: "username")
newUser.setValue("2311", forKey: "password")
newUser.setValue("21", forKey: "age")

Embora os métodos usados ​​para salvar o contexto já existam no AppDelegate.swift, mas a definição explícita do código também pode ser feita para salvar o contexto no banco de dados. Lembre-se de envolver isso com o bloco do try e catch, pois isso ajudará no tratamento de exceções. 

do { 
  try context.save()      
 } catch {      
  print("Error saving")
}

Agora, cada vez que você executar nosso aplicativo, novas entidades serão adicionadas aos registros no Core Data.

Além disso, leia: Como terceirizar o desenvolvimento de aplicativos móveis em 2021: 7 coisas para manter em mente

Recuperar / Buscar dos Dados Principais

O procedimento de buscar os dados salvos é muito simples. Tem a seguinte tarefa:

  • Crie e organize a solicitação do tipo NSFetchRequest para a entidade.
  • Use predicado para dados de filtro (se necessário).
  • Busque o resultado do contexto na forma de uma matriz de [NSManagedObject].
  • Agora você precisa percorrer uma matriz para obter o valor para a chave específica.
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
        //request.predicate = NSPredicate(format: "age = %@", "21")
request.returnsObjectsAsFaults = false        
do {
            let result = try context.fetch(request)
            for data in result as! [NSManagedObject] 
{
    print(data.value(forKey: "username") as! String)
  }

       } catch {

           print("Failed")
}

Atualizar dados nos dados principais

Para atualizar os registros, primeiro você precisa buscar dados com o uso de predicado, conforme mostrado acima no processo Recuperando dados. Então abaixo alguns passos a seguir:

  • Enquadre a solicitação com um predicado para a entidade 
  • Busque o registro, poste esse valor Set New com chave
  • E contexto Last Save semelhante ao Create Data.

Para todas essas tarefas você pode usar o mesmo código acima.

Excluir dados nos dados principais

Para excluir o registro, primeiro você precisa encontrar o objeto que deseja excluir Buscar Solicitação, siga as etapas abaixo para excluir o registro:

  • Formular a solicitação com um predicado para a entidade 
  • Busque o registro que você deseja excluir
  • E crie a chamada context.delete(object) (imagem de referência anexada abaixo)
let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
let context = self.appDel.managedObjectContext!
context.del(data)
do {
try context.save()
}
catch {
    // Handle Error
}

Dados principais: NSPredicate em Swift

Predicados são testes simples, que são usados ​​para filtrar os dados que você precisa em nossa matriz de dados resultante. O teste será aplicado a todos os objetos em sua entidade Core Data. Assim como comandos SQL simples, predicados são usados.

let query = "Suraj"

let request: NSFetchRequest&lt;Person&gt; = Person.fetchRequest()request.predicate = NSPredicate(format: "name LIKE %@", query)request.predicate = NSPredicate(format: "name == %@", query)

Assim como "COMO” no exemplo acima, NSPredicate tem muitas palavras-chave como:

CONTÉM, COMBINA, COMEÇA COM E TERMINA COM.

Além disso, leia: Flutter Basics: por que usar o Flutter para o desenvolvimento de aplicativos móveis

Conclusão

O Core Data é uma ótima opção para aplicativos que exigem o gerenciamento de um gráfico de objeto complexo. Core Data só pode fazer seu charme porque mantém o gráfico de objeto que trabalha na memória. Há muitas coisas complicadas que podemos fazer com os dados principais, como adicionar predicados e relacionamentos complexos de bancos de dados, rastrear alterações de dados e muito mais. À medida que você utiliza mais Core Data e se aprofunda, as coisas ficam mais complicadas, mas esses são os fundamentos do Core Data.

[sc name = "Mobile App Development"] [add_newsletter] [add_related_page_diff_contents blog_cat = "mobile-development"]

Dados principais é um framework gráfico e de persistência, que é usado em dispositivos Apple com sistemas operacionais macOS e iOS. Dados principais foi introduzido pela primeira vez no Mac OS X 10.4 Tiger e iOS com iPhone SDK 3.0. Permite dados, para ser organizado em uma forma de modelo de entidade-atributo relacional, para que possa ser serializado em repositórios XML, binários ou SQLite.

Você pode utilizar dados principais para salvar o seu aplicativo dados permanentes para uso offline, para armazenar dados temporários em cache e adicionar a funcionalidade de desfazer ao seu aplicativo em um único dispositivo.

Core Data reflete automaticamente seu esquema para um CloudKitName container para sincronizar dados em vários dispositivos em uma única conta do iCloud.

Você pode especificar os tipos e relacionamentos de seus dados e desenvolver as respectivas definições de classe. O Core Data pode gerenciar instâncias de objeto em tempo de execução por meio do editor de modelo de dados do Core Data.

O Core Data tem certas desvantagens, pois só pode armazenar dados depois de inseridos, o que não é como um banco de dados SQL típico. 

Em outras palavras, o Core Data mantém um gráfico de objeto na memória, portanto, só pode trabalhar com registros na memória. Você pode entender isso como, suponha que você queira excluir ou atualizar 100 registros, então primeiro você precisa carregar todos os registros na memória.

Anteriormente, o Core Data tinha alguns problemas com o multithreading, mas ao longo dos anos as melhorias no desenvolvimento do Core Data o tornaram compatível com o multithreading.

Desfazer e refazer alterações individuais ou em lote

Dados principais tem essa característica de desfazer e refazer. O gerenciador de desfazer rastreia as alterações que ocorrem nos dados e pode revertê-las sempre que necessário. Isso facilita muito o trabalho do desenvolvedor. 

Ver Sincronização

CoreData fornece visualização de tabela e visualização de coleção que são úteis quando você deseja sincronizar suas visualizações e dados.

Versionamento e migração

CoreData ajuda você a versionar seu modelo de dados e migração de dados do usuário com a evolução do aplicativo.

Tarefas de dados em segundo plano

CoreData executa Tarefas de dados de bloqueio de interface do usuário, como analisar JSON em objetos, mas em segundo plano, que pode ser armazenado em cache ou armazenado para reduzir as viagens de ida e volta do servidor.

Além disso, leia: Desenvolvimento nativo de aplicativos móveis: prós, contras, alternativas e otimização de custos

CURD em swift (Criar, Atualizar, Recuperar, Excluir)

Vamos criar um novo projeto para entender como funciona o Core Data e vamos selecionar “Usar dados principais”. Você também pode adicionar Core Data ao seu projeto posteriormente, mas isso é mais fácil, pois tudo será servido para você.

Criar projeto com Use Core Data

Uma vez que o projeto é criado, você verá um arquivo como CoreDataTest.xcdatamodeld já criado, você também pode adicionar o arquivo a um projeto existente.

Adicionar entidade

Depois de clicar nele, você verá uma ferramenta. Esta ferramenta permite configurar entidades, estas entidades representam modelos de dados.

Aqui você pode definir algumas das coisas para cada entidade, mas lembre-se que Atributos e Relacionamentos será o mais importante.

Configurar o nome e os atributos da entidade

Pilha de dados principais

No interior do Delegado de aplicativo, Código da pilha de dados principal tem documentação clara em forma de comentários, configura o contêiner persistente e salva os dados e, se houver alguma alteração, eles são salvos.

Você pode salvar e buscar facilmente o contexto do Core Data Stack porque Delegado de aplicativo é o primeiro arquivo executado assim que o aplicativo é iniciado.

Como você transformou nossos dados na entidade User, agora você pode adicionar alguns registros e salvá-los no CoreData.

Além disso, leia: O guia para desenvolver e adotar uma estratégia de aplicativos móveis para empresas

Salvando registros em dados principais

O procedimento de adicionar os registros ao Core Data inclui as seguintes tarefas:

  • Consulte o contêiner persistente
  • Crie o contexto
  • Criar uma entidade
  • Criar novo registro
  • Para cada chave, você precisa definir valores para os registros.

Uma vez que o recipiente está instalado no Delegados de aplicativos. Portanto, você precisa se referir a esse contêiner.

let appDelegate = UIApplication.shared.delegate as! AppDelegate

Vamos criar um contexto a partir deste contêiner.

let context = appDelegate.persistentContainer.viewContext

Vamos criar uma entidade e novos registros de usuário.

let entity = NSEntityDescription.entity(forEntityName: "Users", in: context)
let newUser = NSManagedObject(entity: entity!, insertInto: context)

Por fim, adicione alguns dados ao seu registro recém-criado.

newUser.setValue("Abhishek", forKey: "username")
newUser.setValue("2311", forKey: "password")
newUser.setValue("21", forKey: "age")

Embora os métodos usados ​​para salvar o contexto já existam no AppDelegate.swift, mas a definição explícita do código também pode ser feita para salvar o contexto no banco de dados. Lembre-se de envolver isso com o bloco do try e catch, pois isso ajudará no tratamento de exceções. 

do { 
  try context.save()      
 } catch {      
  print("Error saving")
}

Agora, cada vez que você executar nosso aplicativo, novas entidades serão adicionadas aos registros no Core Data.

Além disso, leia: Como terceirizar o desenvolvimento de aplicativos móveis em 2021: 7 coisas para manter em mente

Recuperar / Buscar dos Dados Principais

O procedimento de buscar os dados salvos é muito simples. Tem a seguinte tarefa:

  • Crie e organize a solicitação do tipo NSFetchRequest para a entidade.
  • Use predicado para dados de filtro (se necessário).
  • Busque o resultado do contexto na forma de uma matriz de [NSManagedObject].
  • Agora você precisa percorrer uma matriz para obter o valor para a chave específica.
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
        //request.predicate = NSPredicate(format: "age = %@", "21")
request.returnsObjectsAsFaults = false        
do {
            let result = try context.fetch(request)
            for data in result as! [NSManagedObject] 
{
    print(data.value(forKey: "username") as! String)
  }

       } catch {

           print("Failed")
}

Atualizar dados nos dados principais

Para atualizar os registros, primeiro você precisa buscar dados com o uso de predicado, conforme mostrado acima no processo Recuperando dados. Então abaixo alguns passos a seguir:

  • Enquadre a solicitação com um predicado para a entidade 
  • Busque o registro, poste esse valor Set New com chave
  • E contexto Last Save semelhante ao Create Data.

Para todas essas tarefas você pode usar o mesmo código acima.

Excluir dados nos dados principais

Para excluir o registro, primeiro você precisa encontrar o objeto que deseja excluir Buscar Solicitação, siga as etapas abaixo para excluir o registro:

  • Formular a solicitação com um predicado para a entidade 
  • Busque o registro que você deseja excluir
  • E crie a chamada context.delete(object) (imagem de referência anexada abaixo)
let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
let context = self.appDel.managedObjectContext!
context.del(data)
do {
try context.save()
}
catch {
    // Handle Error
}

Dados principais: NSPredicate em Swift

Predicados são testes simples, que são usados ​​para filtrar os dados que você precisa em nossa matriz de dados resultante. O teste será aplicado a todos os objetos em sua entidade Core Data. Assim como comandos SQL simples, predicados são usados.

let query = "Suraj"

let request: NSFetchRequest&lt;Person&gt; = Person.fetchRequest()request.predicate = NSPredicate(format: "name LIKE %@", query)request.predicate = NSPredicate(format: "name == %@", query)

Assim como "COMO” no exemplo acima, NSPredicate tem muitas palavras-chave como:

CONTÉM, COMBINA, COMEÇA COM E TERMINA COM.

Além disso, leia: Flutter Basics: por que usar o Flutter para o desenvolvimento de aplicativos móveis

Conclusão

O Core Data é uma ótima opção para aplicativos que exigem o gerenciamento de um gráfico de objeto complexo. Core Data só pode fazer seu charme porque mantém o gráfico de objeto que trabalha na memória. Há muitas coisas complicadas que podemos fazer com dados principais, como adicionar predicados e relacionamentos complexos de bancos de dados, rastrear alterações de dados e muito mais. À medida que você utiliza mais Core Data e se aprofunda, as coisas ficam mais complicadas, mas esses são os fundamentos dos Core Data.

Serviços de desenvolvimento de aplicativos móveis

Você quer alavancar a tecnologia móvel para sua empresa? A Cynoteck é um provedor completo de Serviços de Desenvolvimento de Aplicativos Móveis. Oferecemos serviços de desenvolvimento de aplicativos iOS e Android para que você alcance seu público-alvo em qualquer dispositivo.



convidado
0 Comentários
Comentários em linha
Ver todos os comentários
0
Adoraria seus pensamentos, por favor, comente.x