Zoeken…


Opmerkingen

Ondersteunde typen

  • NSData
  • NSDate (datum)
  • NSNumber (Int / Double)
  • NSString (String)
  • NSArray (Array)
  • CLLocation
  • CKReference
  • CKAsset

Meer details

CloudKit-dashboard

App registreren voor gebruik met CloudKit

Wat je nodig hebt is om een rechtenbestand te krijgen, zodat de app toegang heeft tot je iCloud en records kan schrijven met CloudKit.

Volg de stappen om toegang tot iCloud te verlenen vanuit uw app:

1- Selecteer het project in de Project Navigator en open vervolgens het tabblad Algemeen.

2- Stel in het gedeelte Identiteit uw ontwikkelaar Apple ID in op het vervolgkeuzemenu Team. (Als het niet beschikbaar is, voegt u het toe in het Xcode-menu -> Voorkeuren -> Accounts.

3- Ga naar het tabblad Mogelijkheden in de projecteigenschappen en schakel iCloud in. Selecteer vervolgens "Key-Value Storage" en "CloudKit".

voer hier de afbeeldingsbeschrijving in

4- Zorg ervoor dat deze items zijn aangevinkt:

voer hier de afbeeldingsbeschrijving in

Als alle items zijn aangevinkt, is uw app klaar om CloudKit te gebruiken.

CloudKit Dashboard gebruiken

Alle records die zijn gemaakt met behulp van CloudKit-gerelateerde code kunnen worden bekeken, bewerkt en zelfs verwijderd in CloudKit Dashboard. Om toegang te krijgen CloudKit Dashboard, ga hier .

Het dashboard bevat verschillende onderdelen:

  • Recordtypen (die later worden besproken)
  • Beveiligingsrollen (hier kunt u databases instellen als openbaar of privé)
  • Abonnementstypen (die uw app zou kunnen registreren voor Apple Push Notifications (APN's) om u te informeren wanneer een record wordt gewijzigd)

Recordtypen

Hier krijgt u een lijst met alle bestaande recordtypen in de app. Wanneer u CloudKit Dashboard voor het eerst opent voor een app, is er een recordtype met de naam Gebruikers daar, die u kunt gebruiken of gewoon verwijderen en uw eigen gebruiken.

Op deze pagina kunt u uw gegevens handmatig laten typen. Natuurlijk is dit in de meeste gevallen zinloos, omdat iOS SDK het veel beter aankan dan het dashboard, maar de functionaliteit is er ook als je dat liever hebt. Het meest gebruikt van deze pagina is voor het bekijken van typen.

Gegevens opslaan in CloudKit

Om datum op te slaan in CloudKit, moeten we het volgende doen:

  • Een CKRecordID (de sleutel van uw unieke record)
  • Een CKRecord (inclusief data)

Een opnamesleutel maken

Om ervoor te zorgen dat elke nieuwe record-ID uniek is, gebruiken we de huidige tijdstempel , die uniek is. We krijgen de tijdstempel met NSDate van de methode timeIntervalSinceReferenceDate() . Het heeft de vorm van ###. ### (# zijn getallen), die we het gehele getal zullen gebruiken. Om dit te doen, splitsen we de string:

Snel

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

Het record maken

Om de record te maken, moeten we het recordtype (uitgelegd in CloudKit Dashboard gebruiken) opgeven als Gebruikers, de ID als het ding dat we zojuist hebben gemaakt en de gegevens. Hier voegen we een voorbeeldtekst, een afbeelding en de huidige datum aan de record toe:

Snel

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

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

Notitie

Hier hebben we de UIImage rechtstreeks aan de record toegevoegd, omdat, zoals vermeld in Opmerkingen, het beeldformaat niet direct wordt ondersteund in CloudKit, dus hebben we UIImage omgezet in CKAsset .

Toegang tot de container

Snel

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

De records opslaan in CloudKit-database

Snel

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow