Suche…


Bemerkungen

Unterstützte Typen

  • NSData
  • NSDate (Datum)
  • NSNumber (Int / Double)
  • NSString (String)
  • NSArray (Array)
  • CLLocation
  • CKReferenz
  • CKAsset

Mehr Details

CloudKit-Dashboard

App zur Verwendung mit CloudKit registrieren

Sie benötigen eine Berechtigungsdatei, damit die App mithilfe von CloudKit auf Ihre iCloud zugreifen und Datensätze schreiben kann.

Befolgen Sie die Schritte, um von Ihrer App aus Zugriff auf iCloud zu gewähren:

1- Wählen Sie das Projekt im Projektnavigator aus und öffnen Sie die Registerkarte Allgemein.

2- Setzen Sie im Abschnitt Identität Ihre Entwickler-Apple-ID auf das Team-Dropdown-Menü. (Wenn es nicht verfügbar ist, fügen Sie es im Xcode-Menü hinzu -> Voreinstellungen -> Konten.

3- Wechseln Sie in den Projekteigenschaften zur Registerkarte Funktionen und aktivieren Sie iCloud. Wählen Sie dann "Schlüsselwertspeicher" und "CloudKit" aus.

Geben Sie hier die Bildbeschreibung ein

4- Stellen Sie sicher, dass diese Punkte markiert sind:

Geben Sie hier die Bildbeschreibung ein

Wenn alle Elemente markiert sind, kann Ihre App CloudKit verwenden.

CloudKit Dashboard verwenden

Alle mit CloudKit-Code erstellten Datensätze können in CloudKit Dashboard in der Vorschau angezeigt, bearbeitet und sogar entfernt werden. Um auf das CloudKit Dashboard zuzugreifen, klicken Sie hier .

Das Dashboard enthält mehrere Teile:

  • Datensatztypen (auf die später noch eingegangen wird)
  • Sicherheitsrollen (Hier können Sie Datenbanken als öffentlich oder privat festlegen)
  • Abonnementtypen (die Ihre App für Apple Push Notifications (APNs) registrieren könnte, um Sie zu benachrichtigen, wenn ein Datensatz geändert wird)

Datensatztypen

Hier erhalten Sie eine Liste aller in der App vorhandenen Datensatztypen. Wenn Sie das CloudKit Dashboard zum ersten Mal für eine App öffnen, gibt es dort einen Datensatztyp namens Benutzer, den Sie verwenden können oder einfach löschen und einen eigenen verwenden können.

Auf dieser Seite können Sie Ihre Daten manuell eingeben. In den meisten Fällen ist dies natürlich sinnlos, da iOS SDK damit weitaus besser umgehen kann als das Dashboard. Die Funktionalität ist jedoch auch vorhanden, wenn Sie dies vorziehen. Diese Seite wird am häufigsten für die Vorschau von Typen verwendet.

Daten in CloudKit speichern

Um ein Datum in CloudKit zu speichern, müssen wir Folgendes vornehmen:

  • Eine CKRecordID (der Schlüssel Ihres eindeutigen Datensatzes)
  • Ein CKRecord (der Daten enthält)

Einen Aufnahmeschlüssel erstellen

Um sicherzustellen, dass jede neue Datensatzkennung eindeutig ist, verwenden wir den aktuellen Zeitstempel , der eindeutig ist. Wir erhalten den Zeitstempel mit der NSDate -Methode timeIntervalSinceReferenceDate() . Es ist in der Form von ###. ### (# sind Zahlen), wobei wir den ganzzahligen Teil verwenden werden. Dazu teilen wir die Zeichenfolge auf:

Schnell

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

Aufnahme machen

Um den Datensatz zu erstellen, sollten wir den Datensatztyp (wie in Verwenden von CloudKit Dashboard erläutert) als Benutzer, die ID als das, was wir gerade gemacht haben, und die Daten angeben. Hier fügen wir dem Datensatz einen Beispieltext, ein Bild und das aktuelle Datum hinzu:

Schnell

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

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

Hinweis

Hier haben wir den UIImage direkt zum Datensatz hinzugefügt, da das UIImage in CKAsset nicht direkt unterstützt wird. Daher haben wir UIImage in CKAsset konvertiert.

Zugriff auf den Container

Schnell

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

Speichern der Datensätze in der CloudKit-Datenbank

Schnell

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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow