RAContactManager.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //
  2. // RAContactManager.h
  3. // ContactDemo
  4. //
  5. // Created by Jack on 2018/12/24.
  6. // Copyright © 2018 USAI. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. @class CNContact,CNMutableContact;
  10. NS_CLASS_AVAILABLE(10_11, 9_0)
  11. @interface RAContactManager : NSObject
  12. + (instancetype)defaultManager;
  13. - (void)requestAuthorization:(void(^)(BOOL granted))completion;
  14. #pragma mark - Search
  15. - (void)fetchAllContactCompletionHandler:(void(^)(NSArray<CNContact *> *contacts, NSError *error))completion;
  16. - (void)searchContactByName:(NSString *)name completionHandler:(void(^)(NSArray<CNContact *> *contacts, NSError *error))completion;
  17. - (void)searchContactByKeyword:(NSString *)keyword completionHandler:(void(^)(NSArray<CNContact *> *contacts, NSError *error))completion;
  18. #pragma mark - Insert
  19. - (void)insertContact:(CNMutableContact *)contact completionHandler:(void(^)(BOOL result,NSError *error))completion;
  20. #pragma mark - Remove
  21. - (void)removeContact:(CNContact *)contact completionHandler:(void(^)(BOOL result,NSError *error))completion;
  22. #pragma mark - Update
  23. - (void)updateContact:(CNMutableContact *)contact completionHandler:(void(^)(BOOL result,NSError *error))completion;
  24. #pragma mark - Utils
  25. - (void)sortGroupedContactsByFamilyNameFirstLetter:(NSArray<CNContact *> *)contacts
  26. completion:(void(^)(NSArray<NSString *> *sortedKeys, NSDictionary<NSString *, NSArray<CNContact *> *> *contactGroup))completion;///<使用姓氏首页字母分组
  27. @end