CloudKit Namespace
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Der CloudKit-Namespace bietet Zugriff auf iCloud.
Klassen
| Name | Beschreibung |
|---|---|
| CKAcceptSharesOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKAllowedSharingOptions |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKAsset |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKContainer |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKContainer.Notifications |
Von der CKContainer Klasse gepostete Benachrichtigungen. |
| CKDatabase |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKDatabaseNotification |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKDatabaseOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKDatabaseSubscription |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKDiscoverAllUserIdentitiesOperation |
Ein Vorgang, der alle auffindbaren Benutzer im Adressbuch des Systems abruft. |
| CKDiscoverUserIdentitiesOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKErrorCodeExtensions |
Erweiterungsmethoden für die CKErrorCode Enumeration. |
| CKErrorFields |
Enthält Fehlerkonstanten, die von CloudKit verwendet werden. |
| CKFetchDatabaseChangesOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchNotificationChangesOperation |
Eine CKOperation , die Benachrichtigungsänderungen abruft. |
| CKFetchRecordChangesOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchRecordsOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchRecordZoneChangesConfiguration |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchRecordZoneChangesOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchRecordZoneChangesOptions |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchRecordZonesOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchShareMetadataOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchShareParticipantsOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchSubscriptionsOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchWebAuthTokenOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKLocationSortDescriptor |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKMarkNotificationsReadOperation |
Kennzeichnet Pushbenachrichtigungen als gelesen. Wird in der Regel von Apps verwendet, die Pushbenachrichtigungen zum Nachverfolgen von Datensatzänderungen verwenden. |
| CKModifyBadgeOperation |
Ein CKOperation Signal, das das Symbol der App ändert, entweder auf dem aktuellen Gerät oder auf allen Geräten des Benutzers. |
| CKModifyRecordsOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKModifyRecordZonesOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKModifySubscriptionsOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKNotification |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKNotificationID |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKNotificationInfo |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKOperationConfiguration |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKOperationGroup |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKQuery |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKQueryCursor |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKQueryNotification |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKQueryOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKQuerySubscription |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKRecord |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKRecordID |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKRecordValue |
Dies ist eine Klasse, die die Schnittstelle ICKRecordValue implementiert (für das Protokoll Unterklasse dieser Klasse zum einfachen Erstellen eines Typs, der das Protokoll implementiert. Eine Alternative besteht darin, eine Unterklasse von NSObject und dann die Schnittstelle ICKRecordValuezu erstellen. |
| CKRecordZone |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKRecordZoneID |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKRecordZoneNotification |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKRecordZoneSubscription |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKReference |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKServerChangeToken |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKShare |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKShareAccessRequester |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKShareBlockedIdentity |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKShareKeys |
Konstanten, die von verschiedenen CloudKit-Klassen verwendet werden. |
| CKShareMetadata |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKShareParticipant |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKShareRequestAccessOperation |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSubscription |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngine |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineAccountChangeEvent |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineConfiguration |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineDelegate |
Dies ist eine Klasse, die die Schnittstelle ICKSyncEngineDelegate implementiert (für das Protokoll Unterklasse dieser Klasse zum einfachen Erstellen eines Typs, der das Protokoll implementiert. Eine Alternative besteht darin, eine Unterklasse von NSObject und dann die Schnittstelle ICKSyncEngineDelegatezu erstellen. |
| CKSyncEngineDelegate_Extensions |
Erweiterungsmethoden für die ICKSyncEngineDelegate Schnittstelle, um alle Methoden aus dem CKSyncEngineDelegate-Protokoll zu unterstützen. |
| CKSyncEngineDidFetchChangesEvent |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineDidFetchRecordZoneChangesEvent |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineDidSendChangesEvent |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineEvent |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineFailedRecordSave |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineFailedZoneSave |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineFetchChangesContext |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineFetchChangesOptions |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineFetchChangesScope |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineFetchedDatabaseChangesEvent |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineFetchedRecordDeletion |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineFetchedRecordZoneChangesEvent |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineFetchedZoneDeletion |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEnginePendingDatabaseChange |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEnginePendingRecordZoneChange |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEnginePendingZoneDelete |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEnginePendingZoneSave |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineRecordZoneChangeBatch |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineSendChangesContext |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineSendChangesOptions |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineSendChangesScope |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineSentDatabaseChangesEvent |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineSentRecordZoneChangesEvent |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineState |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineStateSerialization |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineStateUpdateEvent |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineWillFetchChangesEvent |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineWillFetchRecordZoneChangesEvent |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineWillSendChangesEvent |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSystemSharingUIObserver |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKUserIdentity |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKUserIdentityLookupInfo |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
Schnittstellen
| Name | Beschreibung |
|---|---|
| ICKRecordValue |
Diese Schnittstelle stellt das Objective-C-Protokoll |
| ICKSyncEngineDelegate |
Diese Schnittstelle stellt das Objective-C-Protokoll |
Enumerationen
| Name | Beschreibung |
|---|---|
| CKAccountStatus |
Listet Werte auf, die angeben, ob das iCloud-Konto eines Benutzers verfügbar ist. |
| CKApplicationPermissions |
Listet einen Wert auf, der angibt, dass andere App-Benutzer den aktuellen Benutzer anhand der E-Mail-Adresse ermitteln können. |
| CKApplicationPermissionStatus |
Listet die Zustände auf, die eine Anwendung haben kann, wenn Sie versuchen, eine Berechtigung zu erhalten. |
| CKDatabaseScope |
Listet Werte auf, die ermitteln, ob eine Datenbank privat, freigegeben oder öffentlich ist. |
| CKErrorCode |
Listet CloudKit-Fehlerbedingungen auf. |
| CKNotificationType |
Listet die Ereignisse auf, die eine Pushbenachrichtigung generieren können. |
| CKOperationGroupTransferSize |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKQueryNotificationReason |
Listet die persistenten Speicherereignisse auf, die Datenlebenszyklusbenachrichtigungen auslösen können. |
| CKQuerySubscriptionOptions |
Listet die Uhrzeit oder Uhrzeit auf, zu denen eine CKSubscription Benachrichtigung ausgelöst wird. |
| CKRecordSavePolicy |
Listet Richtlinien auf, die steuern, wann oder ob ein Datensatz gespeichert werden soll. |
| CKRecordZoneCapabilities |
Listet die speziellen Vorgänge auf, die eine Zone ausführen kann. |
| CKRecordZoneEncryptionScope |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKReferenceAction |
Listet Werte auf, die steuern, ob sich ein Verweis selbst löschen soll, wenn sein Zieldatensatz gelöscht wird. |
| CKShareParticipantAcceptanceStatus |
Listet Antworten auf die Freigabe von Teilnahmeanfragen auf. |
| CKShareParticipantPermission |
Listet Berechtigungen für die Benutzerfreigabe auf. |
| CKShareParticipantRole |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKShareParticipantType |
Listet die Freigabeteilnehmertypen auf. |
| CKSharingParticipantAccessOption |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSharingParticipantPermissionOption |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSubscriptionType |
Listet Abonnementtypen auf. |
| CKSyncEngineAccountChangeType |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineEventType |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEnginePendingDatabaseChangeType |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEnginePendingRecordZoneChangeType |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineSyncReason |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKSyncEngineZoneDeletionReason |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
Delegaten
| Name | Beschreibung |
|---|---|
| CKAcceptPerShareCompletionHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKDatabaseDeleteSubscriptionHandler |
Abschlusshandler für die DeleteSubscription(String, CKDatabaseDeleteSubscriptionHandler) Methode. |
| CKFetchDatabaseChangesCompletionHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchPerShareMetadataHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchRecordChangesHandler |
Delegieren sie für die AllChangesReported Eigenschaft. |
| CKFetchRecordsCompletedHandler |
Delegieren sie für die Completed Eigenschaft. |
| CKFetchRecordZoneChangesFetchCompletedHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchRecordZoneChangesRecordWasChangedHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchRecordZoneChangesTokensUpdatedHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchRecordZoneChangesWithIDWasDeletedHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchShareParticipantsOperationPerShareParticipantCompletionHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchSubscriptionsCompleteHandler |
Delegieren sie für die Completed Eigenschaft. |
| CKFetchSubscriptionsPerSubscriptionCompletionHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKFetchWebAuthTokenOperationHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKMarkNotificationsReadHandler |
Delegieren sie für die Completed Eigenschaft. |
| CKModifyRecordsOperationHandler |
Delegieren sie für die Completed Eigenschaft. |
| CKModifyRecordsOperationPerRecordDeleteHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKModifyRecordsOperationPerRecordSaveHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKModifyRecordZonesHandler |
Delegieren sie für die Completed Eigenschaft. |
| CKModifyRecordZonesPerRecordZoneDeleteHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKModifyRecordZonesPerRecordZoneSaveHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKModifySubscriptionsHandler |
Delegieren sie für die Completed Eigenschaft. |
| CKModifySubscriptionsPerSubscriptionDeleteHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKModifySubscriptionsPerSubscriptionSaveHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKQueryOperationRecordMatchedHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKRecordZoneCompleteHandler |
Delegieren sie für die Completed Eigenschaft. |
| CKRecordZonePerRecordZoneCompletionHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKShareRequestAccessOperationPerShareAccessRequestCompletionHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
| CKShareRequestAccessOperationShareRequestAccessCompletionHandler |
Der CloudKit-Namespace bietet Zugriff auf iCloud. |
Hinweise
Mit dem CloudKit-Namespace können Anwendungsentwickler den Datenfluss zwischen ihren Anwendungen und iCloud steuern. iCloud bietet serverseitige Datenspeicherung, sowohl "öffentlich", die zwischen allen Instanzen einer Anwendung oder bestimmter Anwendungen gemeinsam genutzt wird, als auch "privat", die für einen einzelnen Benutzer eindeutig ist. iCloud-Speicher und -Transport werden verschlüsselt und zwischen Apple-Geräten synchronisiert. CloudKit bietet keine clientseitige Persistenz oder Datenzwischenspeicherung – CloudKit-Funktionalität ist nur verfügbar, während der Benutzer über eine aktive Internetverbindung verfügt.
Die Klasse der höchsten Ebene im CloudKit ist CKContainer. Ein CloudKit-Container (manchmal in der Apple-Dokumentation als "Ubiquity-Container" bezeichnet) ist ein Informationsspeicher, der mit einem bestimmten Namen identifiziert wird. Apple rät, einen Namen des Formulars "iCloud" zu verwenden. {reverse DNS}. {appName}", z. B. "iCloud.com.mycompany.MyApp". Entwickler müssen ihre Container über das iCloud-Dashboard erstellen und konfigurieren, das über das Apple-Entwicklerportal verfügbar ist.
Ein Einzelner CKContainer kann beide öffentlichen Daten enthalten, die zwischen allen Instanzen der App geteilt werden (siehe PublicCloudDatabase), und privaten Daten, die benutzerspezifische Daten enthalten (siehe PrivateCloudDatabase). Innerhalb von iCloud werden öffentliche Daten im iCloud-Speicher der App gespeichert, während private Daten im privaten iCloud-Speicher des Benutzers gespeichert werden. Die Öffentlichkeit CKDatabase ist für alle verbundenen Benutzer der App verfügbar, unabhängig davon, ob sie bei iCloud angemeldet sind. Das Private CKDatabase ist nur verfügbar, wenn der Benutzer bei iCloud angemeldet ist. Entwickler müssen ihren Code so schreiben, dass er ordnungsgemäß auf Änderungen im Anmelde- oder Verbindungsstatus des Benutzers reagiert.
Diese öffentlichen und privaten CKDatabase Objekte speichern strukturierte Datensätze. Diese werden durch CKRecord Objekte dargestellt. Zusätzlich zu Feld-ähnlichen Schlüsselwertdaten können diese Datensätze große Objekte entweder direkt (mit dem enthaltenden CKRecordObjekt abgerufen) oder als Verweise (sodass lazy-Abruf der großen Daten möglich ist) enthaltenCKAsset.
Alle CKRecord Instanzen werden in einem CKRecordZone. Ein CKRecordZone Beispiel hierfür ist eine herkömmliche Datenbankinstanz: Sie kann mehrere CKRecord Speicher enthalten, die sich gegenseitig beziehen, aber nicht in anderen CKRecordZone Instanzen und CKRecordZone Objekten gespeichert werden können, um Atomvorgänge in mehreren CKRecord Speichern zu koordinieren. Die Ähnlichkeit mit einer Datenbankinstanz ist nicht universell; Beispielsweise kann FetchRecordAsync ein Entwickler eine CKRecord direkt aus der CKDatabase Zone abrufen, ohne auf die Zone zu verweisen. Der Standardwert CKRecordZone ist über DefaultRecordZone. Entwickler können zusätzliche Zonen mithilfe des CloudKit-Dashboards erstellen und diese verwenden, um ihre Daten logisch zu partitionieren.
CloudKit-Apps erfordern ein Bereitstellungsprofil mit der com.apple.developer.icloud-services Berechtigung und einen app-spezifischen Bündelbezeichner (z. B. "com.mycompany.CloudKitApp"). Entwickler müssen ein solches Bereitstellungsprofil erstellen und konfigurieren.
Im Folgenden werden einige typische Verwendungen von CloudKit veranschaulicht, die für einzelne Datensätze verwendet werden:
//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;
}