/// <summary> /// </summary> /// <param name="query"></param><param name="zoneID"></param><param name="completionHandler"></param> /// <returns>void</returns> public void PerformQuery( CKQuery query, CKRecordZoneID zoneID, Action <CKRecord[], NSError> completionHandler) { if (query == null) { throw new ArgumentNullException(nameof(query)); } var completionHandlerCall = new InvocationRecord(Handle); PerformQueryCallbacks[completionHandlerCall] = completionHandler; CKDatabase_performQuery_inZoneWithID_completionHandler( Handle, query != null ? HandleRef.ToIntPtr(query.Handle) : IntPtr.Zero, zoneID != null ? HandleRef.ToIntPtr(zoneID.Handle) : IntPtr.Zero, completionHandlerCall.id, PerformQueryCallback, out IntPtr exceptionPtr); if (exceptionPtr != IntPtr.Zero) { var nativeException = new NSException(exceptionPtr); throw new CloudKitException(nativeException, nativeException.Reason); } }
public CKQueryOperation( CKQuery query ) { if (query == null) { throw new ArgumentNullException(nameof(query)); } IntPtr ptr = CKQueryOperation_initWithQuery( query != null ? HandleRef.ToIntPtr(query.Handle) : IntPtr.Zero, out IntPtr exceptionPtr); if (exceptionPtr != IntPtr.Zero) { var nativeException = new NSException(exceptionPtr); throw new CloudKitException(nativeException, nativeException.Reason); } Handle = new HandleRef(this, ptr); }