AMapNearbySearchManager.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. //
  2. // AMapNearbySearchManager.h
  3. // AMapSearchKit
  4. //
  5. // Created by xiaoming han on 15/8/31.
  6. // Copyright (c) 2015年 Amap. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "AMapSearchError.h"
  10. @class AMapNearbySearchManager;
  11. @class AMapNearbyUploadInfo;
  12. ///附近搜索代理
  13. @protocol AMapNearbySearchManagerDelegate <NSObject>
  14. @optional
  15. /**
  16. * @brief 开启自动上传,需实现该回调。
  17. */
  18. - (AMapNearbyUploadInfo *)nearbyInfoForUploading:(AMapNearbySearchManager *)manager;
  19. /**
  20. * @brief 用户信息上传完毕回调。
  21. * @param error 错误,为空时表示成功。
  22. */
  23. - (void)onNearbyInfoUploadedWithError:(NSError *)error;
  24. /**
  25. * @brief 用户信息清除完毕回调。
  26. * @param error 错误,为空时表示成功。
  27. */
  28. - (void)onUserInfoClearedWithError:(NSError *)error;
  29. @end
  30. ///附近搜索管理类,同时只能有一个实例开启,否则可能会出现错误。
  31. @interface AMapNearbySearchManager : NSObject
  32. ///上传最小间隔,默认15s,最小7s。自动上传的过程中设置无效。
  33. @property (nonatomic, assign) NSTimeInterval uploadTimeInterval;
  34. ///代理对象。
  35. @property (nonatomic, weak) id<AMapNearbySearchManagerDelegate> delegate;
  36. ///是否正在自动上传状态中。
  37. @property (nonatomic, readonly) BOOL isAutoUploading;
  38. /**
  39. * @brief manager单例.
  40. * 初始化之前请设置key,否则将无法正常使用该服务.
  41. * @return nearbySearch实例。
  42. */
  43. + (instancetype)sharedInstance;
  44. /**
  45. * @brief 请使用单例。
  46. */
  47. - (instancetype)init __attribute__((unavailable));
  48. /**
  49. * @brief 启动自动上传。
  50. */
  51. - (void)startAutoUploadNearbyInfo;
  52. /**
  53. * @brief 关闭自动上传。
  54. */
  55. - (void)stopAutoUploadNearbyInfo;
  56. /**
  57. * @brief 执行单次上传,执行间隔不低于uploadTimeInterval最小值,否则执行失败。
  58. * @param info 需要上传的信息。
  59. * @return 成功执行返回YES,否则返回NO。
  60. */
  61. - (BOOL)uploadNearbyInfo:(AMapNearbyUploadInfo *)info;
  62. /**
  63. * @brief 清除服务器上某一用户的信息。
  64. * @param userID 指定的用户ID
  65. * @return 成功执行返回YES,否则返回NO。
  66. */
  67. - (BOOL)clearUserInfoWithID:(NSString *)userID;
  68. @end