CloudKit este un cadru Apple care a fost introdus alături de iOS 8 în 2014. Scopul este de a oferi o soluție simplă pentru stocarea datelor aplicației în cloud utilizând iCloud, făcându-l disponibil pe toate dispozitivele. Unele dintre caracteristicile cheie ale CloudKit includ:
În acest tutorial, vă voi învăța cum să configurați și să interacționați cu CloudKit într-o aplicație iOS, creând o aplicație de probă numită CloudBug. CloudBug afișează o listă de erori cu un titlu și o descriere, stocate în iCloud folosind CloudKit.
Acest tutorial necesită să executați Xcode 6+ și să aveți un cont de dezvoltator pentru iOS. De asemenea, va trebui să descărcați proiectul Starter de la GitHub.
Primul lucru pe care trebuie să-l faceți după deschiderea proiectului starter este schimbarea destinației identificatorul pachetului și echipă. Selectează CloudBug proiect în Project Navigator și alegeți CloudBug țintă din lista de obiective.
Schimba identificatorul pachetului la un șir unic, folosind notarea serviciului de nume de domeniu invers. Apoi, selectați echipa potrivită pentru contul dvs. de dezvoltator.
Deschide Capacități în partea de sus și activați icloud prin comutarea întrerupătorului din dreapta. Aceasta va dezvălui setările iCloud pentru CloudBug ţintă.
În setările iCloud, bifați caseta de selectare CloudKit pentru a permite CloudKit pentru obiectivul CloudBug.
Construiți și rulați aplicația pe un dispozitiv fizic pe simulatorul iOS pentru a vedea dacă totul funcționează fără erori.
Apasă pe Tabloul de bord CloudKit butonul din partea de jos a setărilor iCloud. Aceasta va deschide tabloul de bord CloudKit în browser. După ce vă conectați la contul dvs. de dezvoltator, ar trebui să apară tabloul de bord CloudKit. Înainte de a continua, permiteți-mi să vă trec prin elementele din bara laterală din stânga.
În acest tutorial, vă veți concentra doar pe tipurile de înregistrări și pe zona publică implicită. Următorul pas este să creați primul tip de înregistrare.
Dacă selectați Tipuri de înregistrări din bara laterală din stânga, veți observa că un tip numit Utilizatori deja exista.
Să creăm un nou tip de înregistrare numit Gândac care va conține un titlu și o descriere. Faceți clic pe butonul plus din partea de sus pentru a crea un nou tip de înregistrare.
Schimbați numele noului tip de înregistrare în Gândac și adăugați două atribute, Titlu și Descriere. Asigurați atributul de tip Şir cu numai întrebare index verificat. Acesta ar trebui să arate noul tip de înregistrare.
Clic Salvați în partea dreaptă jos pentru a crea Gândac tipul de înregistrare.
Când selectați Zona implicită sub Datele publice, Gândac tipul de înregistrare ar trebui să fie deja selectat. Creați o înregistrare nouă fie făcând clic pe Un nou record sau făcând clic pe butonul plus din partea de sus.
Introdu ceea ce vrei pentru înregistrare Descriere și Titlu câmpuri.
Clic Salvați din dreapta jos pentru a crea înregistrarea. Veți vedea că înregistrării dvs. i sa atribuit o înregistrare unică ID-ul, Creată Data, Modificat Data, Creat de identificatorul și Modificat de identificator. Indiferent de tipul de înregistrare pe care se bazează o înregistrare, acesta va avea întotdeauna aceste cinci atribute.
Întoarceți-vă la Xcode și deschideți-l MasterViewController.swift. În partea de sus, adăugați o declarație de import pentru a importa cadrul CloudKit.
importați CloudKit
Actualizați viewDidLoad
prin adăugarea următorului fragment de cod.
permite container = CKContainer.defaultContainer () let publicData = container.publicCloudDatabase permite interogare = CKQuery (recordType: "Bug", predicat: NSPredicate (format: "TRUEPREDICATE", argumentArray: nil) publicData.performQuery (query, inZoneWithID: rezultat, eroare în cazul în care eroare == nil // Nu există nici o eroare pentru bug-ul în rezultate lasă newBug = Bug () newBug.title = bug ["Title"] ca! String newBug.description = bug ["Descriere"] ca! String self.objects.append (newBug) dispatch_async (dispatch_get_main_queue (), () -> Void în self.tableView.reloadData ()) altceva println (error)
Să vedem ce se întâmplă în acest fragment de cod.
NSPredicate
instanță. Acest predicat poate fi folosit pentru filtrarea rezultatelor interogării, de exemplu, numai preluarea înregistrărilor create sau modificate după o anumită dată. Pentru acest exemplu, preluăm fiecare înregistrare de tip Gândac.rezultate
array și an eroare
obiect.eroare
obiect este zero
, ne bifăm prin elementele rezultate
array și a crea un local Gândac
exemplu pentru fiecare înregistrare. Fiecare Gândac
instanța este adăugată la sursa de date a tabelului și vizualizarea tabelului este reîncărcată în firul principal.Construiți și rulați aplicația dvs. pentru a vedea dacă înregistrarea creată în tabloul de bord CloudKit este încărcată în CloudBug.
Dacă vedeți o eroare în consola Xcode similară celei de mai jos, asigurați-vă că sunteți conectat (ă) la contul iCloud corect de pe dispozitivul dvs. de testare. Acest lucru este valabil și în cazul în care executați CloudBug în Simulatorul iOS.
Apăsând bug-ul în vizualizarea tabelului ar trebui să prezinte controlerul vizualizării detaliate cu descrierea bug-ului.
În timp ce încărcarea datelor din iCloud prin CloudKit poate fi foarte utilă, CloudBug are nevoie și de capacitatea de a permite utilizatorilor să creeze noi înregistrări. În MasterViewController.swift, adăugați următorul fragment de cod la receiveBug (_ :)
metodă.
permite container = CKContainer.defaultContainer () let publicData = container.publicCloudDatabase permite înregistrarea = CKRecord (recordType: "Bug") record.setValue (bug.title, pentruKey: "Title") record.setValue (bug.description, forKey: Descriere ") publicData.saveRecord (record, completionHandler: record, eroare în cazul în care eroare! = Nil println (error))
Primele două linii trebuie să fie familiare. Obținem o referință la containerul implicit și la baza de date publică. Creăm a CKRecord
exemplu, setați valorile pentru Titlu și Descriere chei și salvați înregistrarea în iCloud.
Rețineți că record
obiect returnat de la iCloud în saveRecord (_: completionHandler :)
handler de execuție include valorile setate manual, precum și cele cinci atribute standard pe care le-am văzut mai devreme în tabloul de bord CloudKit.
Creați și rulați aplicația dvs. și postați o eroare nouă atingând butonul plus din partea dreaptă sus, completând câmpurile de titlu și descriere. Atingeți Post și pentru a salva noua înregistrare în iCloud în baza de date CloudKit.
Revizuiți tabloul de bord CloudKit și navigați la Zona implicită sub Datele publice. Dacă totul a mers bine,ar trebui să vedeți două Gândac înregistrări în baza de date.
Să terminăm acest tutorial, permițând utilizatorilor să ștergă un bug. Adăugați următorul fragment de cod în secțiunea tableView (_: commitEditingStyle: forRowAtIndexPath :)
metoda de mai sus objects.removeAtIndex (indexPath.row)
.
permite container = CKContainer.defaultContainer () let publicData = container.publicCloudDatabase permite bug = self.objects [indexPath.row] lasă interogare = CKQuery (recordType: "Bug", predicat: NSPredicate (format: AND (Descriere ==% @) ", argumentArray: [bug.title, bug.description])) publicData.performQuery (interogare, inZoneWithID: nil, completionHandler: results, error in if error == nil if results.count > 0 (inregistreaza: CKRecord! = Rezultate [0] ca! CKRecord println (record) publicData.deleteRecordWithID (record.recordID, completionHandler: recordID, error in if error! altceva println (error))
Pentru a șterge o înregistrare, vom crea o interogare ca înainte. Pentru a șterge o înregistrare, cu toate acestea, vom crea un predicat pentru a se potrivi cu titlul și descrierea bug-ului. Instrumentul de completare returnează rezultatele interogării pe care o folosim pentru a șterge înregistrarea corespunzătoare din baza de date publică.
Construiți și rulați aplicația și ștergeți unul dintre bug-uri fie prin glisare spre dreapta, fie prin atingerea Editați | × buton.
Revizuiți tabloul de bord CloudKit pentru a vedea dacă eroarea pe care ați selectat-o a fost într-adevăr eliminată.
În acest tutorial, ați creat prima aplicație CloudKit conectând aplicația la iCloud. Ați învățat cum să creați tipuri și înregistrări de înregistrări în tabloul de bord CloudKit și cum să le încărcați în aplicația dvs. În plus față de adăugarea și ștergerea înregistrărilor din tabloul de bord CloudKit, am inclus și adăugarea și ștergerea înregistrărilor utilizând cadrul CloudKit. Dacă aveți comentarii sau întrebări, lăsați-le în comentariile de mai jos.