/// <summary> /// Fetches all unified contacts matching the specified predicate. /// </summary> /// <returns>The contacts matching predicate.</returns> /// <param name="predicate">Predicate.</param> /// <param name="keys">Keys.</param> /// <param name="error">Error.</param> public NSArray <CNContact> UnifiedContactsMatchingPredicate(NSPredicate predicate, NSArray <NSString> keys, out NSError error) { Util.NullArgumentTest(predicate); Util.NullArgumentTest(keys); IntPtr errorPtr = new IntPtr(); var contactsPtr = C.CNContactStore_unifiedContactsMatchingPredicate( SelfPtr(), predicate.ToPointer(), keys.ToPointer(), ref errorPtr); error = null; if (PInvokeUtil.IsNotNull(errorPtr)) { error = new NSError(errorPtr); CFFunctions.CFRelease(errorPtr); } NSArray <CNContact> contacts = null; if (PInvokeUtil.IsNotNull(contactsPtr)) { contacts = new NSArray <CNContact>(contactsPtr); CFFunctions.CFRelease(contactsPtr); } return(contacts); }
/// <summary> /// Fetches a unified contact for the specified contact identifier. /// </summary> /// <returns>The contact with identifier.</returns> /// <param name="identifier">Identifier.</param> /// <param name="keys">Keys.</param> /// <param name="error">Error.</param> public CNContact UnifiedContactWithIdentifier(NSString identifier, NSArray <NSString> keys, out NSError error) { Util.NullArgumentTest(identifier); Util.NullArgumentTest(keys); IntPtr errorPtr = new IntPtr(); var contactPtr = C.CNContactStore_unifiedContactWithIdentifier( SelfPtr(), identifier.ToPointer(), keys.ToPointer(), ref errorPtr); error = null; if (PInvokeUtil.IsNotNull(errorPtr)) { error = new NSError(errorPtr); CFFunctions.CFRelease(errorPtr); } CNContact contact = null; if (PInvokeUtil.IsNotNull(contactPtr)) { contact = new CNContact(contactPtr); CFFunctions.CFRelease(contactPtr); } return(contact); }
/// <summary> /// The designated initializer for a fetch request that uses the specified keys. /// </summary> /// <returns>The with keys to fetch.</returns> /// <param name="keysToFetch">Keys to fetch.</param> public static CNContactFetchRequest InitWithKeysToFetch(NSArray <NSString> keysToFetch) { if (keysToFetch == null) { return(null); } // This will automatically call alloc on native side before calling the init method. var ptr = C.CNContactFetchRequest_initWithKeysToFetch(keysToFetch.ToPointer()); CNContactFetchRequest request = null; if (PInvokeUtil.IsNotNull(ptr)) { request = new CNContactFetchRequest(ptr); CFFunctions.CFRelease(ptr); } return(request); }
/// <summary> /// Initializes and returns a new activity view controller object that acts on the specified data. /// </summary> /// <returns>The with activity items.</returns> /// <param name="activityItems">Activity items.</param> public static UIActivityViewController InitWithActivityItems(NSArray <iOSObjectProxy> activityItems) { if (activityItems == null || activityItems.Count < 1) { return(null); } var pointer = C.UIActivityViewController_initWithActivityItems(activityItems.ToPointer(), IntPtr.Zero); // ignoring applicationActivities for now if (PInvokeUtil.IsNotNull(pointer)) { var obj = new UIActivityViewController(pointer); CoreFoundation.CFFunctions.CFRelease(pointer); return(obj); } else { return(null); } }