QNDnsCacheInfo.m 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. //
  2. // QNDnsCacheKey.m
  3. // QnDNS
  4. //
  5. // Created by yangsen on 2020/3/26.
  6. // Copyright © 2020 com.qiniu. All rights reserved.
  7. //
  8. #import "QNDnsCacheInfo.h"
  9. @interface QNDnsCacheInfo()
  10. /// 缓存时间戳
  11. @property(nonatomic, copy)NSString *currentTime;
  12. /// 缓存时本地IP
  13. @property(nonatomic, copy)NSString *localIp;
  14. /// 缓存信息
  15. @property(nonatomic, copy)NSDictionary *info;
  16. @end
  17. @implementation QNDnsCacheInfo
  18. + (instancetype)dnsCacheInfo:(NSData *)jsonData{
  19. NSDictionary *info = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
  20. if (!info || info.count == 0 ||
  21. (!info[@"currentTime"] && !info[@"localIp"] && !info[@"info"])) {
  22. return nil;
  23. }
  24. return [QNDnsCacheInfo dnsCacheInfo:info[@"currentTime"]
  25. localIp:info[@"localIp"]
  26. info:info[@"info"]];;
  27. }
  28. + (instancetype)dnsCacheInfo:(NSString *)currentTime
  29. localIp:(NSString *)localIp
  30. info:(NSDictionary *)info{
  31. QNDnsCacheInfo *cacheInfo = [[QNDnsCacheInfo alloc] init];
  32. cacheInfo.currentTime = currentTime;
  33. cacheInfo.localIp = localIp;
  34. cacheInfo.info = info;
  35. return cacheInfo;
  36. }
  37. - (NSData *)jsonData{
  38. NSMutableDictionary *cacheInfo = [NSMutableDictionary dictionary];
  39. if (self.currentTime) {
  40. cacheInfo[@"currentTime"] = self.currentTime;
  41. }
  42. if (self.localIp) {
  43. cacheInfo[@"localIp"] = self.localIp;
  44. }
  45. if (self.info) {
  46. cacheInfo[@"info"] = self.info;
  47. }
  48. return [NSJSONSerialization dataWithJSONObject:cacheInfo options:NSJSONWritingPrettyPrinted error:nil];
  49. }
  50. @end