Ricerca…


Osservazioni

Tipi supportati

  • NSData
  • NSDate (data)
  • NSNumber (Int / Double)
  • NSString (String)
  • NSArray (matrice)
  • CLLocation
  • CKReference
  • CKAsset

Più dettagli

CloudKit Dashboard

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

inserisci la descrizione dell'immagine qui

4- Assicurati che questi elementi siano spuntati:

inserisci la descrizione dell'immagine qui

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 convertito UIImage in CKAsset .

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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow