CloudKit Spazio dei nomi
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Lo spazio dei nomi CloudKit consente l'accesso a iCloud.
Classi
| Nome | Descrizione |
|---|---|
| CKAcceptSharesOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKAllowedSharingOptions |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKAsset |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKContainer |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKContainer.Notifications |
Notifiche inviate dalla CKContainer classe . |
| CKDatabase |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKDatabaseNotification |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKDatabaseOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKDatabaseSubscription |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKDiscoverAllUserIdentitiesOperation |
Operazione che ottiene tutti gli utenti individuabili nella rubrica del sistema. |
| CKDiscoverUserIdentitiesOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKErrorCodeExtensions |
Metodi di estensione per l'enumerazione CKErrorCode . |
| CKErrorFields |
Contiene le costanti di errore usate da CloudKit. |
| CKFetchDatabaseChangesOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchNotificationChangesOperation |
Oggetto CKOperation che recupera le modifiche delle notifiche. |
| CKFetchRecordChangesOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchRecordsOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchRecordZoneChangesConfiguration |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchRecordZoneChangesOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchRecordZoneChangesOptions |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchRecordZonesOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchShareMetadataOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchShareParticipantsOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchSubscriptionsOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchWebAuthTokenOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKLocationSortDescriptor |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKMarkNotificationsReadOperation |
Contrassegna le notifiche push come lette. In genere usato dalle app che usano notifiche push per tenere traccia delle modifiche. |
| CKModifyBadgeOperation |
Oggetto CKOperation che modifica il badge dell'icona dell'app, nel dispositivo corrente o in tutti i dispositivi dell'utente. |
| CKModifyRecordsOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKModifyRecordZonesOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKModifySubscriptionsOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKNotification |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKNotificationID |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKNotificationInfo |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKOperationConfiguration |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKOperationGroup |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKQuery |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKQueryCursor |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKQueryNotification |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKQueryOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKQuerySubscription |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKRecord |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKRecordID |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKRecordValue |
Si tratta di una classe che implementa l'interfaccia ICKRecordValue (per il protocollo Sottoclasse questa classe per creare facilmente un tipo che implementa il protocollo. Un'alternativa consiste nel creare una sottoclasse di NSObject e quindi implementare l'interfaccia ICKRecordValue. |
| CKRecordZone |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKRecordZoneID |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKRecordZoneNotification |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKRecordZoneSubscription |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKReference |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKServerChangeToken |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKShare |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKShareAccessRequester |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKShareBlockedIdentity |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKShareKeys |
Costanti usate da varie classi CloudKit. |
| CKShareMetadata |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKShareParticipant |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKShareRequestAccessOperation |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSubscription |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngine |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineAccountChangeEvent |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineConfiguration |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineDelegate |
Si tratta di una classe che implementa l'interfaccia ICKSyncEngineDelegate (per il protocollo Sottoclasse questa classe per creare facilmente un tipo che implementa il protocollo. Un'alternativa consiste nel creare una sottoclasse di NSObject e quindi implementare l'interfaccia ICKSyncEngineDelegate. |
| CKSyncEngineDelegate_Extensions |
Metodi di estensione per l'interfaccia ICKSyncEngineDelegate per supportare tutti i metodi del protocollo CKSyncEngineDelegate. |
| CKSyncEngineDidFetchChangesEvent |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineDidFetchRecordZoneChangesEvent |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineDidSendChangesEvent |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineEvent |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineFailedRecordSave |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineFailedZoneSave |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineFetchChangesContext |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineFetchChangesOptions |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineFetchChangesScope |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineFetchedDatabaseChangesEvent |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineFetchedRecordDeletion |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineFetchedRecordZoneChangesEvent |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineFetchedZoneDeletion |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEnginePendingDatabaseChange |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEnginePendingRecordZoneChange |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEnginePendingZoneDelete |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEnginePendingZoneSave |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineRecordZoneChangeBatch |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineSendChangesContext |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineSendChangesOptions |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineSendChangesScope |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineSentDatabaseChangesEvent |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineSentRecordZoneChangesEvent |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineState |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineStateSerialization |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineStateUpdateEvent |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineWillFetchChangesEvent |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineWillFetchRecordZoneChangesEvent |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineWillSendChangesEvent |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSystemSharingUIObserver |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKUserIdentity |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKUserIdentityLookupInfo |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
Interfacce
| Nome | Descrizione |
|---|---|
| ICKRecordValue |
Questa interfaccia rappresenta il protocollo |
| ICKSyncEngineDelegate |
Questa interfaccia rappresenta il protocollo |
Enumerazioni
| Nome | Descrizione |
|---|---|
| CKAccountStatus |
Enumera i valori che indicano se l'account iCloud di un utente è disponibile. |
| CKApplicationPermissions |
Enumera un valore che indica che altri utenti dell'app possono individuare l'utente corrente in base all'indirizzo di posta elettronica. |
| CKApplicationPermissionStatus |
Enumera gli stati che un'applicazione può avere quando si tenta di ottenere un'autorizzazione. |
| CKDatabaseScope |
Enumera i valori che indicano se un database è privato, condiviso o pubblico. |
| CKErrorCode |
Enumera le condizioni di errore di CloudKit. |
| CKNotificationType |
Enumera gli eventi che possono generare una notifica push. |
| CKOperationGroupTransferSize |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKQueryNotificationReason |
Enumera gli eventi di archiviazione permanente che possono attivare le notifiche del ciclo di vita dei dati. |
| CKQuerySubscriptionOptions |
Enumera l'ora o l'ora in cui viene CKSubscription attivata una notifica. |
| CKRecordSavePolicy |
Enumera i criteri che controllano quando o se deve essere salvato un record. |
| CKRecordZoneCapabilities |
Enumera le operazioni speciali di cui una zona è in grado di eseguire. |
| CKRecordZoneEncryptionScope |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKReferenceAction |
Enumera i valori che controllano se un riferimento deve essere eliminato quando viene eliminato il record di destinazione. |
| CKShareParticipantAcceptanceStatus |
Enumera le risposte per condividere le richieste di partecipazione. |
| CKShareParticipantPermission |
Enumera le autorizzazioni di condivisione utente. |
| CKShareParticipantRole |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKShareParticipantType |
Enumera i tipi di partecipanti di condivisione. |
| CKSharingParticipantAccessOption |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSharingParticipantPermissionOption |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSubscriptionType |
Enumera i tipi di sottoscrizione. |
| CKSyncEngineAccountChangeType |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineEventType |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEnginePendingDatabaseChangeType |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEnginePendingRecordZoneChangeType |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineSyncReason |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKSyncEngineZoneDeletionReason |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
Delegati
| Nome | Descrizione |
|---|---|
| CKAcceptPerShareCompletionHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKDatabaseDeleteSubscriptionHandler |
Gestore di completamento per il DeleteSubscription(String, CKDatabaseDeleteSubscriptionHandler) metodo . |
| CKFetchDatabaseChangesCompletionHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchPerShareMetadataHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchRecordChangesHandler |
Delegato per la AllChangesReported proprietà . |
| CKFetchRecordsCompletedHandler |
Delegato per la Completed proprietà . |
| CKFetchRecordZoneChangesFetchCompletedHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchRecordZoneChangesRecordWasChangedHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchRecordZoneChangesTokensUpdatedHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchRecordZoneChangesWithIDWasDeletedHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchShareParticipantsOperationPerShareParticipantCompletionHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchSubscriptionsCompleteHandler |
Delegato per la Completed proprietà . |
| CKFetchSubscriptionsPerSubscriptionCompletionHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKFetchWebAuthTokenOperationHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKMarkNotificationsReadHandler |
Delegato per la Completed proprietà . |
| CKModifyRecordsOperationHandler |
Delegato per la Completed proprietà . |
| CKModifyRecordsOperationPerRecordDeleteHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKModifyRecordsOperationPerRecordSaveHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKModifyRecordZonesHandler |
Delegato per la Completed proprietà . |
| CKModifyRecordZonesPerRecordZoneDeleteHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKModifyRecordZonesPerRecordZoneSaveHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKModifySubscriptionsHandler |
Delegato per la Completed proprietà . |
| CKModifySubscriptionsPerSubscriptionDeleteHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKModifySubscriptionsPerSubscriptionSaveHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKQueryOperationRecordMatchedHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKRecordZoneCompleteHandler |
Delegato per la Completed proprietà . |
| CKRecordZonePerRecordZoneCompletionHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKShareRequestAccessOperationPerShareAccessRequestCompletionHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
| CKShareRequestAccessOperationShareRequestAccessCompletionHandler |
Lo spazio dei nomi CloudKit consente l'accesso a iCloud. |
Commenti
Lo spazio dei nomi CloudKit consente agli sviluppatori di applicazioni di controllare il flusso di dati tra le applicazioni e iCloud. iCloud fornisce l'archiviazione dei dati sul lato server, sia "pubblica" condivisa tra tutte le istanze di un'applicazione o applicazioni specifiche e "private" univoca per un singolo utente. L'archiviazione e il trasporto iCloud vengono crittografati e sincronizzati tra i dispositivi Apple. CloudKit non fornisce la persistenza sul lato client o la memorizzazione nella cache dei dati: la funzionalità CloudKit è disponibile solo se l'utente ha una connessione Internet attiva.
La classe di livello più alto in CloudKit è CKContainer. Un contenitore CloudKit (talvolta indicato nella documentazione di Apple come "contenitore Ubiquity") è un archivio informazioni identificato con un nome specifico. Apple consiglia di usare un nome del formato "iCloud. {DNS inverso}. {appName}", ad esempio, "iCloud.com.mycompany.MyApp". Gli sviluppatori devono creare e configurare i contenitori usando il dashboard iCloud, disponibile tramite il portale per sviluppatori Apple.
Un singolo CKContainer può contenere entrambi i dati pubblici, condivisi tra tutte le istanze dell'app (vedere PublicCloudDatabase) e i dati privati, che contengono dati specifici dell'utente (vedere PrivateCloudDatabase). All'interno di iCloud, i dati pubblici vengono archiviati nell'archiviazione iCloud dell'app mentre i dati privati vengono archiviati nell'archiviazione iCloud privata dell'utente. Il pubblico CKDatabase è disponibile per tutti gli utenti connessi dell'app, indipendentemente dal fatto che siano connessi a iCloud. Il privato CKDatabase è disponibile solo se l'utente ha effettuato l'accesso a iCloud. Gli sviluppatori devono scrivere il codice in modo che reagisca correttamente alle modifiche apportate allo stato di accesso o connessione dell'utente.
Questi oggetti pubblici e privati CKDatabase archiviano record strutturati. Sono rappresentati da CKRecord oggetti . Oltre ai dati chiave-valore simili al campo, questi record possono contenere CKAsset oggetti di grandi dimensioni direttamente (recuperati con l'oggetto contenitore CKRecord) o come riferimenti (consentendo il recupero differita dei dati di grandi dimensioni).
Tutte le CKRecord istanze vengono archiviate all'interno di un oggetto CKRecordZone. Un CKRecordZone è simile a un'istanza di database tradizionale: può contenere più CKRecord archivi che possono fare riferimento l'uno all'altro, ma non archiviare in altre CKRecordZone istanze e CKRecordZone oggetti possono essere usati per coordinare le operazioni atomiche tra più CKRecord archivi. La somiglianza con un'istanza del database non è universale; ad esempio, uno sviluppatore può usare FetchRecordAsync per recuperare un oggetto CKRecord direttamente da CKDatabase senza fare riferimento alla zona. Il valore predefinito CKRecordZone è disponibile tramite DefaultRecordZone. Gli sviluppatori possono creare zone aggiuntive usando il dashboard CloudKit e usarle per partizionare i dati in modo logico.
Le app CloudKit richiedono un profilo di provisioning con il com.apple.developer.icloud-services diritto e un identificatore bundle specifico dell'app (ad esempio, "com.mycompany.CloudKitApp"). Gli sviluppatori devono creare e configurare tale profilo di provisioning.
Di seguito vengono illustrati alcuni usi tipici di CloudKit che funzionano su singoli record:
//Create
private async Task<CKRecord> StoreInCloudKit (string name, CLLocation loc, int stationId)
{
string containerName = "iCloud.com.example.CKWork";
var container = CKContainer.FromIdentifier (containerName);
CKDatabase publicDatabase = container.PublicCloudDatabase;
var zoneId = CKRecordZone.DefaultRecordZone ().ZoneId;
var recordType = "StationReferences";
var record = new CKRecord (recordType);
record ["Name"] = new NSString (name);
record ["Position"] = loc;
record ["StationID"] = new NSNumber (stationId);
var storedRecord = await publicDatabase.SaveRecordAsync (record);
return storedRecord;
}
//Retrieve (via ID)
private async Task<CKRecord> AccessCloudKit ()
{
string containerName = "iCloud.com.example.CKWork";
var container = CKContainer.FromIdentifier (containerName);
CKDatabase publicDatabase = container.PublicCloudDatabase;
var recordNameIHappenToKnow = "7eaf0432-2fa4-475f-851a-c6a19b3f8587";
var recordId = new CKRecordID (recordNameIHappenToKnow);
var record = await publicDatabase.FetchRecordAsync (recordId);
return record;
}
//Retrieve (query)
private async Task<CKRecord []> QueryCloudKit ()
{
string containerName = "iCloud.com.example.CKWork";
var container = CKContainer.FromIdentifier (containerName);
CKDatabase publicDatabase = container.PublicCloudDatabase;
var zoneId = CKRecordZone.DefaultRecordZone ().ZoneId;
Console.WriteLine ($"Default zone name = '{zoneId.ZoneName}' owner = '{zoneId.OwnerName}'");
/*
var zoneName = "_defaultZone";
var ownerName = "__defaultOwner__";
var zoneId0 = new CKRecordZoneID (zoneName, ownerName);
Console.WriteLine ($"Assert { zoneId0 == zoneId }");
*/
var recordType = "StationReferences";
var location = new CLLocation (19.7303, -155.056);
var predicate = NSPredicate.FromFormat ("distanceToLocation:fromLocation:(Position, %@) < 100", location);
var query = new CKQuery (recordType, predicate);
var result = await publicDatabase.PerformQueryAsync (query, zoneId);
return result;
}
//Update
private async Task<CKRecord> UpdateInCloudKit (CKDatabase database, CKRecord record, NSString key, NSObject newValue)
{
record [key] = newValue;
var modifiedRecord = await database.SaveRecordAsync (record);
return modifiedRecord;
}
//Delete
private async Task<CKRecordID> DeleteRecord (CKDatabase database, CKRecord record)
{
var id = record.Id;
var deletedId = await database.DeleteRecordAsync (id);
return deletedId;
}