Buscar..


Observaciones

Tipos soportados

  • NSData
  • NSDate (Fecha)
  • NSNumber (Int / Double)
  • Cadena NS (String)
  • NSArray (Array)
  • CLLocation
  • CKReferencia
  • CKAsset

Más detalles

CloudKit Dashboard

Registro de la aplicación para su uso con CloudKit

Lo que necesita es obtener un archivo de derechos para que la aplicación pueda acceder a su iCloud y escribir registros utilizando CloudKit.

Siga los pasos para otorgar acceso a iCloud desde su aplicación:

1- Seleccione el proyecto en el Project Navigator y luego abra la pestaña General.

2- En la sección Identidad, establezca su ID de desarrollador de Apple en el menú desplegable Equipo. (Si no está disponible, agréguelo al menú Xcode -> Preferencias -> Cuentas.

3- Ir a la pestaña Capacidades en las propiedades del proyecto y activar iCloud. Luego, seleccione "Key-Value Storage" y "CloudKit".

introduzca la descripción de la imagen aquí

4- Asegúrate de que estos artículos estén marcados:

introduzca la descripción de la imagen aquí

Si todos los elementos están marcados, su aplicación está lista para usar CloudKit.

Utilizando CloudKit Dashboard

Todos los registros creados utilizando el código relacionado con CloudKit se pueden previsualizar, editar e incluso eliminar en CloudKit Dashboard. Para acceder a CloudKit Dashboard, vaya aquí .

Hay varias partes en el tablero de instrumentos:

  • Tipos de registro (que se discutirán más adelante)
  • Roles de seguridad (que es donde puede establecer bases de datos como públicas o privadas)
  • Tipos de suscripción (que su aplicación podría registrar para notificaciones automáticas de Apple (APN) para notificarle cuando se modifica un registro)

Tipos de registro

Aquí, obtiene una lista de todos los tipos de registro existentes en la aplicación. Cuando abre CloudKit Dashboard por primera vez para una aplicación, hay un tipo de registro llamado Usuarios, que puede usar o simplemente borrarlo y usar el suyo propio.

En esta página, puede hacer que sus datos sean escritos manualmente. Por supuesto, en la mayoría de los casos esto no tiene sentido, porque el SDK de iOS puede manejarlo mucho mejor que el panel de control, pero la funcionalidad también está ahí si lo prefiere. El mayor uso de esta página es para previsualizar tipos.

Guardando datos en CloudKit

Para guardar la fecha en CloudKit, debemos hacer:

  • A CKRecordID (la clave de su registro único)
  • Un CKRecord (que incluye datos)

Haciendo una clave de registro

Para asegurarnos de que cada nuevo identificador de registro sea único, usamos la marca de tiempo actual, que es única. Obtenemos la marca de tiempo usando NSDate 's método timeIntervalSinceReferenceDate() . Está en la forma de ###. ### (# son números), que utilizaremos la parte entera. Para hacer esto, dividimos la cadena:

Rápido

let timestamp = String(format: "%f", NSDate.timeIntervalSinceReferenceDate())
let timestampParts = timestamp.componentsSeparatedByString(".")
let recordID = CKRecordID(recordName: timestampParts[0])

Haciendo el disco

Para hacer el registro, debemos especificar el tipo de registro (explicado en Uso de CloudKit Dashboard) como Usuarios, el ID como lo que hicimos en este momento y los datos. Aquí, agregaremos un texto de muestra, una imagen y la fecha actual al registro:

Rápido

let record = CKRecord(recordType: "Users", recordID: recordID)
record.setObject("Some Text", forKey: "text")
record.setObject(CKAsset(fileURL: someValidImageURL), forKey: "image")
record.setObject(NSDate(), forKey: "date")

C objetivo

CKRecord *record = [[CKRecord alloc] initWithRecordType: "Users" recordID: recordID];
[record setObject: "Some Text" forKey: "text"];
[record setObject: [CKAsset assetWithFileURL: someValidImageURL] forKey: "image"];
[record setObject: [[NSDate alloc] init] forKey: "date"];

Nota

Aquí, no agregamos el UIImage directamente al registro, porque, como se mencionó en Comentarios, el formato de la imagen no se admite directamente en CloudKit, por lo que hemos convertido UIImage en CKAsset .

Accediendo al contenedor

Rápido

let container = CKContainer.defaultContainer()
let database = container.privateCloudDatabase // or container.publicCloudDatabase

Guardando los registros en la base de datos de CloudKit

Rápido

database.saveRecord(record, completionHandler: { (_, error) -> Void in
    print(error ?? "")
})


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow