An Introduksjon til CloudKit
39
Del
10
Del
Dette Cyber mandag Envato Tuts + kurs vil bli redusert å bare $ 3. Ikke gå glipp av.
Innledning
CloudKit er en Apple-rammeverk som ble introdusert sammen med iOS åtte i 2014. Det formål er å gi en enkel løsning for lagring av programmets data i nettskyen ved hjelp iCloud, noe som gjør den tilgjengelig på tvers av enheter. Noen av de viktigste funksjonene i CloudKit inkluderer:
opp til en PB av eiendelen lagring (bilder, lydfiler, etc.)
opptil 10 TB databaselagring (strenger, tall, tabeller, etc.)
iCloud brukerautentisering
varslinger
I denne opplæringen, vil jeg lære deg hvordan du setter opp og samhandle med CloudKit i en iOS søknad ved å opprette en eksempelapplikasjon kalt CloudBug. CloudBug viser en liste over bugs med en tittel og en beskrivelse, som er lagret i iCloud bruker CloudKit.
Krav
Denne opplæringen forutsetter at du kjører Xcode 6+ og har en iOS-utviklerkonto . Du må også laste ned starter prosjektet fra GitHub.
1. Prosjektet Configuration
Det første du må gjøre når du har åpnet starteren prosjektet er i endring målets bunt identifikator og team. Velg CloudBug prosjektet i Prosjekt Navigator og velg CloudBug målet fra listen over mål.
Endre bunten identifikator til en unik streng ved hjelp av omvendt domenenavn tjeneste notasjon. Deretter velger du riktig team for utviklerkontoen din.
Åpne fanen Capabilities på toppen og aktivere iCloud ved veksling bryteren til høyre. Dette vil avsløre iCloud innstillingene for CloudBug målet.
I iCloud-innstillingene, sjekk avkrysningsruten CloudKit å aktivere CloudKit for CloudBug målet.
Bygg og kjøre programmet på en fysisk enhet på i iOS Simulator for å se om alt fungerer uten feil.
2. Opprette Bug Record Type
Klikk på CloudKit Dashboard-knappen nederst i iCloud-innstillingene. Dette vil åpne CloudKit dashbordet i nettleseren din. Når du har logget deg på med utviklerkonto, bør CloudKit dashbordet vises. Før du fortsetter, la meg gå gjennom elementene i sidepanelet til venstre.
Schema
oppføringstyper fungere på samme måte som en vanlig klasse definisjon. Records er opprettet som klasse tilfeller fra disse typene.
< .no>
offentlige data
Bruker Records fungerer akkurat som vanlige poster, bortsett fra at de er spesielt knyttet til Brukere oppføringstype, som ikke kan slettes.
Standard Zone er der alle dine offentlige registre og andre data vil bli lagret.
private data
Standard Zone fungerer akkurat som den offentlige standardsonen, unntatt at det kun er tilgjengelig for brukeren som er logget på.
Admin
Team der du kan vise andre utviklere som samarbeider om prosjektet og redigere sine tillatelser.
Deployment der du kan se hvilke endringer vil bli gjort til skjema elementer når prosjektet går inn i et produksjonsmiljø.
I denne opplæringen, er du bare kommer til å være fokus på oppføringstyper og publikum standardsonen. Det neste trinnet er å lage din første posten type.
Hvis du velger oppføringstyper fra sidelinjen til venstre, vil du legge merke til at en type som heter Brukere som allerede eksisterer.
La oss lage en ny posttype som heter Bug som skal inneholde en tittel og beskrivelse. Klikk på pluss-knappen øverst for å opprette en ny post type.
Endre ny rekord typen navn til Bug og legge til to attributter, Tittel og beskrivelse. Gjør begge attributter av typen String med bare Query aksjeindeksopsjonen sjekket. Dette er hva den nye posttype skal se ut.
Klikk på Lagre nederst til høyre for å skape den Bug posttypen.
3. Opprette Records i CloudKit Dashboard
Når du velger standardsonen under Public data, Bug posttypen bør allerede være valgt. Opprett en ny rekord enten ved å klikke på Ny post eller ved å klikke på pluss-knappen på toppen.
Enter hva du vil for posten sin beskrivelse og Klikk Lagre lavt i høyre for å lage plata. Du vil se at posten har blitt tildelt en unik rekord Leder tilbake til Xcode og åpen MasterViewController.swift. På toppen, legge en import uttalelse for å importere CloudKit rammeverket. Oppdater viewDidLoad metoden ved å legge inn følgende kode. La oss se hva som skjer i denne kodebiten. Bygg og kjøre programmet for å se om den posten vi opprettet i CloudKit dashbordet er lastet inn CloudBug. Hvis du ser en feil i Xcode konsoll lik den nedenfor, så sørg for at du er logget på riktig iCloud konto på testenheten. Dette gjelder også hvis du kjører CloudBug i iOS Simulator. Tapping bug i visningen tabellen skal presentere detaljvisningen controller med bug beskrivelse. Mens lasting av data fra iCloud gjennom CloudKit kan være svært nyttig, må CloudBug også muligheten til å tillate brukere å opprette nye rekorder. I MasterViewController.swift, legge inn følgende kode til receiveBug (_ :) metode De to første linjene bør være kjent. Vi får en referanse til standard container, og det offentlige databasen. Vi skaper en CKRecord eksempel kan du sette verdier for tittel og beskrivelse nøkler, og lagre posten til iCloud Merk at posten objektet returnert fra iCloud i saveRecord (_:. CompletionHandler :) ferdigstillelse behandlingsprogram omfatter verdiene du satt manuelt i tillegg til de fem standardattributter vi så tidligere i CloudKit dashbordet. Bygg og kjøre programmet, og legge inn en ny bug ved å trykke på pluss-knappen øverst til høyre, fylle i tittelen og beskrivelse felt. Pek Post og lagre ny rekord i iCloud i CloudKit database. revidere CloudKit dashbordet og naviger til standardsonen under Public data. Hvis alt gikk bra, skal du se to Bug poster i databasen. La oss avslutte denne opplæringen ved at brukerne kan slette en feil. Legg inn følgende kode til Tableview (_: commitEditingStyle. ForRowAtIndexPath :) metoden like over objects.removeAtIndex (indexPath.row) For å slette en rekord, vi oppretter en spørring som vi gjorde tidligere. For å slette en post, men skaper vi et predikat å matche bug tittel og beskrivelse. Gjennomføringen handler returnerer resultatet av spørringen som vi bruker til å slette tilsvarende post fra det offentlige databasen. Bygg og kjøre programmet, og slett en av de feilene enten ved å sveipe til høyre eller ved å trykke på Rediger knappen. revidere CloudKit dashbordet for å se om feilen du har valgt har faktisk blitt slettet. I denne opplæringen, skapte du din første CloudKit søknaden ved å koble din søknad til iCloud. Du lærte å lage oppføringstyper og poster i CloudKit dashbordet, og hvordan du legger dem i programmet. I tillegg til å legge til og slette poster i CloudKit dashbordet, vi også dekket legge til og slette poster med CloudKit rammeverket. Hvis du har kommentarer eller spørsmål, la dem i kommentarfeltet nedenfor.
tittel felt.
ID, Laget dato, Endret dato, Laget av identifikator, og Endret av identifikator. Uansett hva posten skriver en rekord er basert på, vil den alltid ha disse fem attributter.
4. Lasting Records
Import CloudKit
La container = CKContainer.defaultContainer () la publicData = container.publicCloudDatabase la query = CKQuery (registreringstype: "Bug", predikatet: NSPredicate (format: "TRUEPREDICATE", argumentArray: null)) publicData.performQuery (spørring, inZoneWithID: null) {resultater, feil i hvis feilen == null {//Det er ingen feil for feil i resultatene {lar newBug = Bug () newBug.title = bug ["Title"] as! String newBug.description = bug ["Beskrivelse"] as! String self.objects.append (newBug) dispatch_async (dispatch_get_main_queue () {() - > Void i self.tableView.reloadData ()})}} else {println (feil)}}
Først får vi en referanse til standard beholder for søknaden din. Denne beholderen inneholder oppføringstyper og poster vi skapt i CloudKit dashbordet. Du kan opprette flere beholdere med en unik identifikator i Target Inspector > Evner.
5. Opprette Records
la container = CKContainer.defaultContainer () la publicData = container.publicCloudDatabase la record = CKRecord (registreringstype. "Bug") record.setValue (bug.title, Forkey: "Tittel") record.setValue (bug.description, Forkey: "Beskrivelse") publicData.saveRecord (record, completionHandler: {posten, feil i hvis error = nil {println (feil)}!} )
6. Slette Records
la container = CKContainer.defaultContainer () la publicData = container.publicCloudDatabase la bug = selvtillit. objekter [indexPath.row] la query = CKQuery (registreringstype: "Bug", predikatet: NSPredicate (format: "(Tittel ==% @) OG (Beskrivelse ==% @)", argumentArray: [bug.title, bug. beskrivelse])) publicData.performQuery (spørring, inZoneWithID: null, completionHandler: {resultater, feil i hvis feilen == null {if results.count > 0 {la posten:! CKRecord = resultater [0] som CKRecord println ( record) publicData.deleteRecordWithID (record.recordID, completionHandler: {registreringsID, feil i hvis error = nil {println (feil!)}})}} else {println (feil)}})
Konklusjon