Recherche…


Remarques

Types pris en charge

  • NSData
  • NSDate (Date)
  • NSNumber (Int / Double)
  • NSString (String)
  • NSArray (Array)
  • CLLocation
  • CKReference
  • CKAsset

Plus de détails

Tableau de bord CloudKit

Enregistrer l'application pour l'utiliser avec CloudKit

Ce dont vous avez besoin est d'obtenir un fichier de droits afin que l'application puisse accéder à votre iCloud et écrire des enregistrements à l'aide de CloudKit.

Suivez les étapes pour accorder l'accès à iCloud à partir de votre application:

1- Sélectionnez le projet dans le navigateur de projet, puis ouvrez l'onglet Général.

2- Dans la section Identité, définissez l'identifiant Apple de votre développeur dans le menu déroulant Équipe. (S'il n'est pas disponible, ajoutez-le dans le menu Xcode -> Préférences -> Comptes.

3- Accédez à l'onglet Capabilities dans les propriétés du projet et activez iCloud. Ensuite, sélectionnez "Stockage Key-Value" et "CloudKit".

entrer la description de l'image ici

4- Assurez-vous que ces éléments sont cochés:

entrer la description de l'image ici

Si tous les éléments sont cochés, votre application est prête à utiliser CloudKit.

Utilisation du tableau de bord CloudKit

Tous les enregistrements créés à l'aide du code associé à CloudKit peuvent être prévisualisés, modifiés et même supprimés dans CloudKit Dashboard. Pour accéder à CloudKit Dashboard, cliquez ici .

Il y a plusieurs parties dans le tableau de bord:

  • Types d'enregistrement (qui seront discutés plus tard)
  • Rôles de sécurité (où vous pouvez définir des bases de données publiques ou privées)
  • Types d'abonnement (que votre application peut enregistrer pour les notifications push Apple (APN)) afin de vous informer de la modification d'un enregistrement)

Types d'enregistrement

Ici, vous obtenez une liste de tous les types d'enregistrement existants dans l'application. Lorsque vous ouvrez pour la première fois CloudKit Dashboard pour une application, il existe un type d'enregistrement appelé Utilisateurs, que vous pouvez utiliser ou simplement supprimer et utiliser les vôtres.

Sur cette page, vous pouvez saisir manuellement vos données. Bien sûr, dans la plupart des cas, cela ne sert à rien, car iOS SDK peut le gérer mieux que le tableau de bord, mais les fonctionnalités sont également disponibles si vous préférez. La plus grande utilisation de cette page est la prévisualisation des types.

Enregistrement de données dans CloudKit

Pour enregistrer la date dans CloudKit, nous devons faire:

  • Un CKRecordID (la clé de votre enregistrement unique)
  • Un CKRecord (qui inclut des données)

Faire une clé d'enregistrement

Pour garantir que chaque nouvel identifiant d'enregistrement est unique, nous utilisons l' horodatage actuel, qui est unique. Nous obtenons l'horodatage en utilisant NSDate méthode de timeIntervalSinceReferenceDate() . Il est sous la forme de ###. ### (# sont des nombres), nous utiliserons la partie entière. Pour ce faire, nous divisons la chaîne:

Rapide

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

Faire le record

Pour faire l'enregistrement, nous devrions spécifier le type d'enregistrement (expliqué dans Utilisation de CloudKit Dashboard) en tant qu'Utilisateurs, l'ID que nous avons créé tout à l'heure et les données. Ici, nous allons ajouter un exemple de texte, une image et la date du jour à l'enregistrement:

Rapide

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")

Objectif c

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"];

Remarque

Ici, nous n'avons pas ajouté l' UIImage directement à l'enregistrement, car comme mentionné dans Remarques, le format d'image n'est pas directement pris en charge dans CloudKit, nous avons donc converti UIImage en CKAsset .

Accéder au conteneur

Rapide

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

Enregistrement des enregistrements dans la base de données CloudKit

Rapide

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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow