Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
O CKDatabase é uma estrutura fornecida pela Apple que permite armazenar e sincronizar dados em nuvem. Ele é parte do framework CloudKit, que oferece serviços de armazenamento em nuvem para aplicativos iOS, macOS e watchOS.
Para utilizar o CKDatabase, é necessário ter uma conta de desenvolvedor da Apple e configurar o CloudKit no seu projeto. Após a configuração, você pode criar um banco de dados público ou privado para armazenar seus dados.
Existem duas classes principais do CKDatabase: CKDatabase e CKDatabaseOperation. A primeira é responsável por realizar operações de leitura e escrita no banco de dados, enquanto a segunda permite realizar operações assíncronas de forma mais granular.
Para criar uma instância do CKDatabase, você pode utilizar o método database(with:)
da classe CKContainer, passando como parâmetro o tipo de banco de dados desejado (público ou privado). Por exemplo:
let container = CKContainer.default()
let publicDatabase = container.database(with: .public)
let privateDatabase = container.database(with: .private)
Uma vez que você tenha uma instância do CKDatabase, você pode realizar operações de leitura e escrita. Por exemplo, para salvar um registro no banco de dados, você pode utilizar o método save(_:completionHandler:)
, passando como parâmetro um objeto CKRecord contendo os dados a serem salvos. Veja um exemplo:
let recordID = CKRecord.ID(recordName: "myRecord")
let record = CKRecord(recordType: "MyRecordType", recordID: recordID)
record["name"] = "John Doe"
record["age"] = 30
publicDatabase.save(record) { (record, error) in
if let error = error {
print("Erro ao salvar o registro: \(error.localizedDescription)")
} else {
print("Registro salvo com sucesso!")
}
}
Além de salvar registros, você também pode realizar consultas no banco de dados utilizando o método perform(_:inZoneWith:completionHandler:)
. Por exemplo, para buscar todos os registros de um determinado tipo, você pode fazer o seguinte:
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "MyRecordType", predicate: predicate)
publicDatabase.perform(query, inZoneWith: nil) { (records, error) in
if let error = error {
print("Erro ao realizar a consulta: \(error.localizedDescription)")
} else if let records = records {
for record in records {
print("Registro encontrado: \(record)")
}
}
}
O CKDatabase também oferece suporte a operações assíncronas, como o método add(_:completionHandler:)
para adicionar registros em lote, e o método fetch(withRecordID:completionHandler:)
para buscar um registro específico pelo seu ID.