O introducere în CloudKit

Introducere

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:

  • până la 1 PB de stocare a materialelor (imagini, fișiere audio etc.)
  • până la 10 TB de stocare a bazei de date (șiruri de caractere, numere, tablouri etc.)
  • iCloud autentificare utilizator
  • notificări

Î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.

cerinţe

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.

1. Configurarea proiectului

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.

2. Crearea tipului de înregistrare a erorilor

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.

Schemă

  • Tipuri de înregistrări funcționează similar cu o definiție a claselor obișnuite. Înregistrările sunt create ca instanțe de clasă din aceste tipuri.
  • Role de securitate oferă o modalitate de a permite diferiților utilizatori să acceseze date în moduri diferite. De exemplu, un rol de securitate ar putea fi folosit pentru a permite utilizatorilor de nivel administrativ să citească și să scrie permisiuni pentru date.
  • Tipuri de abonamente sunt utilizate pentru a gestiona diferitele abonamente pe care le are aplicația dvs., dacă acestea au fost implementate.

Datele publice

  • Înregistrări de utilizatori funcționează la fel ca înregistrările obișnuite, cu excepția faptului că acestea sunt în mod specific legate de Utilizatori tipul de înregistrare, care nu poate fi șters.
  • Zona implicită este locul în care vor fi stocate toate înregistrările dvs. publice și alte date.

Datele private

  • Zona implicită funcționează la fel ca zona implicită publică, cu excepția faptului că este accesibilă numai utilizatorului care este în prezent conectat.

admin

  • Echipă unde puteți vedea alți dezvoltatori care colaborează la proiect și puteți modifica permisiunile acestora.
  • Implementare unde puteți vedea ce modificări vor fi efectuate în schemăatunci când proiectul dvs. intră într-un mediu de producție.

Î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.

3. Crearea de înregistrări în tabloul de bord CloudKit

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-ulCreată 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.

4. Încărcarea înregistrărilor

Î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.

  • Mai întâi, vom primi o referință la containerul implicit pentru aplicația dvs. Acest container conține tipurile de înregistrări și înregistrările pe care le-am creat în tabloul de bord CloudKit. Puteți crea mai multe containere cu un identificator unic în Inspectorul țintă> Capabilități.
  • În al doilea rând, obținem o referință la baza de date publică a containerului. Formatul este același pentru baza de date privată.
  • Apoi vom crea o interogare pentru Gândac tipul de înregistrare utilizând un 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.
  • Apoi, îi spunem bazei de date să efectueze interogarea, care declanșează o cerere asincronă. Când cererea este finalizată, blocul de completare este executat, dându-ne a rezultate array și an eroare obiect.
  • În cazul în care 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.

5. Crearea de înregistrări

Î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.

6. Ștergerea înregistrărilor

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ă.

Concluzie

Î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.

Cod