Zoeken…
Opmerkingen
Ondersteunde typen
- NSData
- NSDate (datum)
- NSNumber (Int / Double)
- NSString (String)
- NSArray (Array)
- CLLocation
- CKReference
- CKAsset
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".
4- Zorg ervoor dat deze items zijn aangevinkt:
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 weUIImage
omgezet inCKAsset
.
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 ?? "")
})