CloudKit ist ein Apple-Framework, das 2014 neben iOS 8 eingeführt wurde. Es dient dazu, eine einfache Lösung zum Speichern von Anwendungsdaten in der Cloud mithilfe von iCloud bereitzustellen, sodass diese geräteübergreifend verfügbar sind. Zu den wichtigsten Funktionen von CloudKit gehören:
In diesem Lernprogramm werde ich Ihnen zeigen, wie Sie CloudKit in einer iOS-Anwendung einrichten und damit interagieren, indem Sie eine Beispielanwendung erstellen CloudBug. CloudBug zeigt eine Liste von Fehlern mit einem Titel und einer Beschreibung an, die mit CloudKit in iCloud gespeichert werden.
Für dieses Lernprogramm müssen Sie Xcode 6+ ausführen und über ein iOS-Entwicklerkonto verfügen. Sie müssen auch das Starterprojekt von GitHub herunterladen.
Nach dem Öffnen des Starterprojekts müssen Sie zunächst das Ziel ändern Bündelkennung und Mannschaft. Wähle aus CloudBug Projekt in der Projektnavigator und wähle das CloudBug Ziel aus der Liste der Ziele.
Ändere das Bündelkennung zu einer eindeutigen Zeichenfolge mithilfe der umgekehrten Domain Name Service-Notation. Wählen Sie anschließend das für Ihr Entwicklerkonto geeignete Team aus.
Öffne das Fähigkeiten Tab oben und aktivieren iCloud indem Sie den Schalter auf der rechten Seite umschalten. Dadurch werden die iCloud-Einstellungen für die angezeigt CloudBug Ziel.
Aktivieren Sie in den iCloud-Einstellungen das Kontrollkästchen CloudKit um CloudKit für das CloudBug-Ziel zu aktivieren.
Erstellen Sie die Anwendung auf einem physischen Gerät und führen Sie sie im iOS-Simulator aus, um festzustellen, ob alles fehlerfrei funktioniert.
Drücke den CloudKit-Dashboard Schaltfläche am unteren Rand der iCloud-Einstellungen. Dadurch wird das CloudKit-Dashboard in Ihrem Browser geöffnet. Nachdem Sie sich mit Ihrem Entwicklerkonto angemeldet haben, sollte das CloudKit-Dashboard angezeigt werden. Bevor Sie fortfahren, lassen Sie mich durch die Elemente in der linken Seitenleiste gehen.
In diesem Lernprogramm werden Sie sich nur auf Datensatztypen und die öffentliche Standardzone konzentrieren. Im nächsten Schritt erstellen Sie Ihren ersten Datensatztyp.
Wenn Sie auswählen Datensatztypen In der linken Seitenleiste werden Sie feststellen, dass ein Typ benannt wurde Benutzer ist bereits vorhanden.
Erstellen wir einen neuen Datensatztyp mit dem Namen Fehler das wird einen Titel und eine Beschreibung enthalten. Klicken Sie oben auf das Pluszeichen, um einen neuen Datensatztyp zu erstellen.
Ändern Sie den Namen des neuen Datensatztyps in Fehler und fügen Sie zwei Attribute hinzu, Titel und Beschreibung. Machen Sie beide Attribute vom Typ String nur mit dem Abfrage Indexoption aktiviert. So sollte der neue Datensatztyp aussehen.
Klicken sparen unten rechts, um das zu erstellen Fehler Aufnahmetyp.
Wenn Sie auswählen Standardzone unter Öffentliche Daten, das Fehler Datensatztyp sollte bereits ausgewählt sein. Erstellen Sie einen neuen Datensatz, indem Sie auf klicken Neuer Eintrag oder indem Sie auf den Plus-Button oben klicken.
Geben Sie ein, was Sie für die Aufzeichnungen wünschen Beschreibung und Titel Felder.
Klicken sparen unten rechts, um den Datensatz zu erstellen. Sie sehen, dass Ihrem Datensatz ein eindeutiger Datensatz zugewiesen wurde ICH WÜRDE, Erstellt Datum, Geändert Datum, Erstellt von Kennung und Verändert von Kennung. Unabhängig davon, auf welchem Datensatztyp ein Datensatz basiert, hat er immer diese fünf Attribute.
Gehe zurück zu Xcode und öffne MasterViewController.swift. Fügen Sie oben eine Importanweisung hinzu, um das CloudKit-Framework zu importieren.
CloudKit importieren
Aktualisieren Sie die viewDidLoad
Methode durch Anhängen des folgenden Codeausschnitts.
let container = CKContainer.defaultContainer () let publicData = container.publicCloudDatabase let Abfrage = CKQuery (recordType: "Bug", Prädikat: NSPredicate (Format: "TRUEPREDICATE", argumentArray: nil)) publicData.performQuery (query, inZoneWithID: nil) results, error in if error == nil // Es gibt keinen Fehler für Fehler in den Ergebnissen let newBug = Bug () newBug.title = Fehler ["Titel"] als! String newBug.description = Fehler ["Beschreibung"] als! String self.objects.append (newBug) dispatch_async (dispatch_get_main_queue (), () -> Void in self.tableView.reloadData ()) else println (error)
Mal sehen, was in diesem Code-Snippet passiert.
NSPredicate
Beispiel. Dieses Prädikat kann verwendet werden, um die Ergebnisse der Abfrage zu filtern. Beispielsweise werden nur Datensätze abgerufen, die nach einem bestimmten Datum erstellt oder geändert wurden. Für dieses Beispiel holen wir jeden Datensatz des Typs Fehler.Ergebnisse
Array und ein Error
Objekt.Error
Objekt ist Null
, wir durchlaufen die elemente der Ergebnisse
Array und erstellen Sie eine lokale Fehler
Instanz für jeden Datensatz. Jeder Fehler
Eine Instanz wird der Datenquelle der Tabellensicht hinzugefügt, und die Tabellensicht wird im Hauptthread neu geladen.Erstellen Sie Ihre Anwendung, und führen Sie sie aus, um festzustellen, ob der im CloudKit-Dashboard erstellte Datensatz in CloudBug geladen wird.
Wenn in der Xcode-Konsole ein Fehler angezeigt wird, der dem folgenden ähnelt, vergewissern Sie sich, dass Sie beim richtigen iCloud-Konto auf Ihrem Testgerät angemeldet sind. Dies gilt auch, wenn Sie CloudBug im iOS-Simulator ausführen.
Wenn Sie den Fehler in der Tabellensicht antippen, wird der Detailansicht-Controller mit der Fehlerbeschreibung angezeigt.
Das Laden von Daten aus iCloud über CloudKit kann sehr nützlich sein. CloudBug muss jedoch auch die Möglichkeit haben, dass Benutzer neue Datensätze erstellen können. Im MasterViewController.swift, Fügen Sie das folgende Codeausschnitt hinzu receiveBug (_ :)
Methode.
let container = CKContainer.defaultContainer () let publicData = container.publicCloudDatabase let record = CKRecord (recordType: "Bug") record.setValue (bug.title, forKey: "title") record.setValue (bug.description, forKey: " Beschreibung ") publicData.saveRecord (record, completionHandler: record, Fehler bei if error! = Nil println (error))
Die ersten beiden Zeilen sollten bekannt sein. Wir erhalten einen Verweis auf den Standardcontainer und die öffentliche Datenbank. Wir schaffen ein CKRecord
Beispiel, setzen Sie Werte für die Titel und Beschreibung Schlüssel und speichern Sie den Datensatz in iCloud.
Notiere dass der Aufzeichnung
Objekt, das von iCloud im zurückgegeben wurde saveRecord (_: completionHandler :)
Der Completion-Handler enthält die manuell festgelegten Werte sowie die fünf Standardattribute, die wir zuvor im CloudKit-Dashboard angezeigt haben.
Erstellen und starten Sie Ihre Anwendung, und veröffentlichen Sie einen neuen Fehler, indem Sie oben rechts auf das Pluszeichen tippen und die Titel- und Beschreibungsfelder ausfüllen. Zapfhahn Post und um den neuen Datensatz in iCloud in der CloudKit-Datenbank zu speichern.
Besuchen Sie das CloudKit-Dashboard erneut und navigieren Sie zu Standardzone unter Öffentliche Daten. Wenn alles gut ging,Sie sollten zwei sehen Fehler Datensätze in der Datenbank.
Beenden Sie dieses Lernprogramm, indem Sie Benutzern das Löschen von Fehlern ermöglichen. Fügen Sie das folgende Code-Snippet hinzu tableView (_: commitEditingStyle: forRowAtIndexPath :)
Methode gleich oben objects.removeAtIndex (indexPath.row)
.
let container = CKContainer.defaultContainer () let publicData = container.publicCloudDatabase let bug = self.objects [indexPath.row] let Abfrage = CKQuery (recordType: "Bug", Prädikat: NSPredicate (format: "(title ==% @) AND (Description ==% @) ", argumentArray: [bug.title, bug.description])) publicData.performQuery (Abfrage, inZoneWithID: nil, completionHandler: Ergebnisse, Fehler in if error == nil if results.count > 0 Datensatz aufnehmen: CKRecord! = Ergebnisse [0] als! CKRecord println (record) publicData.deleteRecordWithID (record.recordID, completionHandler: recordID, Fehler in if error! = Nil println (error)) else println (error))
Um einen Datensatz zu löschen, erstellen wir eine Abfrage wie zuvor. Um einen Datensatz zu löschen, erstellen wir jedoch ein Vergleichselement, das dem Titel und der Beschreibung des Fehlers entspricht. Der Completion-Handler gibt die Ergebnisse der Abfrage zurück, die wir zum Löschen des entsprechenden Datensatzes aus der öffentlichen Datenbank verwenden.
Erstellen und starten Sie die Anwendung, und löschen Sie einen der Fehler, indem Sie entweder nach rechts wischen oder auf das Symbol tippen Bearbeiten Taste.
Besuchen Sie das CloudKit-Dashboard erneut, um zu sehen, ob der von Ihnen ausgewählte Fehler tatsächlich gelöscht wurde.
In diesem Lernprogramm haben Sie Ihre erste CloudKit-Anwendung erstellt, indem Sie Ihre Anwendung mit iCloud verknüpfen. Sie haben gelernt, wie Sie Datensatztypen und -datensätze im CloudKit-Dashboard erstellen und diese in Ihre Anwendung laden. Neben dem Hinzufügen und Löschen von Datensätzen im CloudKit-Dashboard befassten wir uns auch mit dem Hinzufügen und Löschen von Datensätzen mithilfe des CloudKit-Frameworks. Wenn Sie Anmerkungen oder Fragen haben, lassen Sie sie in den Kommentaren unten.