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ê.
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.
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.
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<Person> = 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.