Ricerca…
Osservazioni
Tipi supportati
- NSData
- NSDate (data)
- NSNumber (Int / Double)
- NSString (String)
- NSArray (matrice)
- CLLocation
- CKReference
- CKAsset
Registrazione dell'app da utilizzare con CloudKit
Quello di cui hai bisogno è ottenere un file di diritti in modo che l'app possa accedere a iCloud e scrivere record usando CloudKit.
Segui i passaggi per concedere l'accesso a iCloud dalla tua app:
1- Seleziona il progetto nel Navigatore progetto, quindi apri la scheda Generale.
2- Nella sezione Identità, imposta l'ID Apple dello sviluppatore nel menu a discesa Team. (Se non è disponibile, aggiungilo nel menu Xcode -> Preferenze -> Account.
3- Vai alla scheda Capacità nelle proprietà del progetto e attiva iCloud. Quindi, seleziona "Memorizzazione valore-chiave" e "CloudKit".
4- Assicurati che questi elementi siano spuntati:
Se tutti gli elementi sono selezionati, la tua app è pronta per l'uso di CloudKit.
Utilizzo di CloudKit Dashboard
Tutti i record creati utilizzando il codice relativo a CloudKit possono essere visualizzati in anteprima, modificati e persino rimossi in CloudKit Dashboard. Per accedere a CloudKit Dashboard, vai qui .
Ci sono diverse parti nel dashboard:
- Tipi di record (che saranno discussi in seguito)
- Ruoli di sicurezza (in cui è possibile impostare i database come pubblici o privati)
- Tipi di abbonamento (che la tua app potrebbe registrare per le notifiche push Apple (APN) per avvisarti quando viene modificato un record)
Registra i tipi
Qui, si ottiene un elenco di tutti i tipi di record esistenti nell'app. Quando apri CloudKit Dashboard per la prima volta su un'app, c'è un tipo di record chiamato Utenti lì, che puoi utilizzare o semplicemente cancellarlo e utilizzarne uno tuo.
In questa pagina è possibile inserire manualmente i dati digitati. Naturalmente, nella maggior parte dei casi questo non ha senso, perché iOS SDK può gestirlo in modo migliore rispetto al dashboard, ma la funzionalità è anche presente se preferisci. Il maggior uso di questa pagina è per l'anteprima dei tipi.
Salvataggio dei dati su CloudKit
Per salvare la data su CloudKit, dobbiamo fare:
- Un
CKRecordID
(la chiave del tuo record unico) - Un
CKRecord
(che include dati)
Fare una chiave di registrazione
Per garantire che ogni nuovo identificatore di record sia unico, utilizziamo il timestamp attuale, che è unico. Otteniamo il timestamp usando NSDate
metodo s' timeIntervalSinceReferenceDate()
. È in forma di ###. ### (# sono numeri), che useremo la parte intera. Per fare ciò, dividiamo la stringa:
veloce
let timestamp = String(format: "%f", NSDate.timeIntervalSinceReferenceDate())
let timestampParts = timestamp.componentsSeparatedByString(".")
let recordID = CKRecordID(recordName: timestampParts[0])
Fare il record
Per rendere il record, dovremmo specificare il tipo di record (spiegato in Utilizzo di CloudKit Dashboard) come Utenti, l'ID come la cosa che abbiamo appena creato e i dati. Qui, aggiungeremo un testo di esempio, un'immagine e la data corrente al record:
veloce
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")
Objective-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"];
Nota
Qui, non abbiamo aggiunto
UIImage
direttamente al record, perché come menzionato in Note, il formato dell'immagine non è direttamente supportato in CloudKit, quindi abbiamo convertitoUIImage
inCKAsset
.
Accesso al contenitore
veloce
let container = CKContainer.defaultContainer()
let database = container.privateCloudDatabase // or container.publicCloudDatabase
Salvataggio dei record nel database CloudKit
veloce
database.saveRecord(record, completionHandler: { (_, error) -> Void in
print(error ?? "")
})