iOS精确获取系统时间---商品倒计时抢购

在很多app中,有很多业务需要实时获取服务器时间,比如商品抢购倒计时,考勤打卡等功能需要,如果你是获取系统时间比如NSDate是不准的,用户可以随时更改手机系统时间。一般的做法都是以后台返回的时间为准,有两种做法,

  1. 让后台在每个接口都返回一个时间,这样每次请求接口的时候都能拿到时间;
  2. 让后台新增一个获取时间的接口,每次我们需要获取时再请求获取,我这边使用的是第二种。
设计思路:
1、创建一个单利的管理对象,负责管理获取时间,添加监听者,销毁监听者。
2、因为项目中很有可能是多个地方都需要用到这个时间,因此我设计一个协议类,任何对象都可以准守这个协议就可以获取准确的时间,只要时间发生变化都会对每个准守协议的对象更新时间。
使用方法:
//第一步,初始化对象 //创建对象 HRMSeverTimeHelp *help = [HRMSeverTimeHelp shareInstance]; //给自己的观察者添加订阅 [help addListener:self]; //开始请求服务器时间 [help requestSeverTime]; //第二步,准守协议 //观察者遵守TimerListenerProtocol协议 //你的vc//在更新回调方法取得返回的时间:(你可以更改这个协议方法,具体根据你业务决定) - (void)didChangeSeverTime:(NSTimeInterval)timeStamp date:(NSDate *_Nullable)date dateString:(NSString *_Nullable)dateString; //第三步 //在你需要取消订阅的地方取消订阅 [help removeListener:self];

【iOS精确获取系统时间---商品倒计时抢购】文字都是乏力的,直接看代码吧!GitHub :https://github.com/JW-chenjingwei/SystemTimeHelp
真恶心,外链都不支持跳转了!

    推荐阅读