备份CatanBuilding瘦身独立工程
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
//
|
||||
// TDCheck.m
|
||||
// ThinkingSDK
|
||||
//
|
||||
// Created by wwango on 2021/9/10.
|
||||
// Copyright © 2021 thinkingdata. All rights reserved.
|
||||
//
|
||||
|
||||
#import "TDCheck.h"
|
||||
#import "TDLogging.h"
|
||||
|
||||
@implementation TDCheck
|
||||
|
||||
+ (NSDictionary *)td_checkToJSONObjectRecursive:(NSDictionary *)properties timeFormatter:(NSDateFormatter *)timeFormatter {
|
||||
return (NSDictionary *)[self td_checkToObjectRecursive:properties timeFormatter:timeFormatter];
|
||||
}
|
||||
|
||||
// Five basic types: list, time, Boolean, value, text, list only supports basic data types
|
||||
// Advanced data types: object, object group
|
||||
+ (NSObject *)td_checkToObjectRecursive:(NSObject *)properties timeFormatter:(NSDateFormatter *)timeFormatter {
|
||||
if (TD_CHECK_NIL(properties)) {
|
||||
return properties;
|
||||
} else if (TD_CHECK_CLASS_NSDictionary(properties)) {
|
||||
NSDictionary *propertyDic = [(NSDictionary *)properties copy];
|
||||
NSMutableDictionary<NSString *, id> *propertiesDic = [NSMutableDictionary dictionaryWithDictionary:propertyDic];
|
||||
for (NSString *key in [propertyDic keyEnumerator]) {
|
||||
NSObject *newValue = [self td_checkToJSONObjectRecursive:propertyDic[key] timeFormatter:timeFormatter];
|
||||
propertiesDic[key] = newValue;
|
||||
}
|
||||
return propertiesDic;
|
||||
} else if (TD_CHECK_CLASS_NSArray(properties)) {
|
||||
NSMutableArray *arrayItem = [(NSArray *)properties mutableCopy];
|
||||
for (int i = 0; i < arrayItem.count ; i++) {
|
||||
id item = [self td_checkToJSONObjectRecursive:arrayItem[i] timeFormatter:timeFormatter];
|
||||
if (item) arrayItem[i] = item;
|
||||
}
|
||||
return arrayItem;
|
||||
} else if (TD_CHECK_CLASS_NSDate(properties)) {
|
||||
NSString *dateStr = [timeFormatter stringFromDate:(NSDate *)properties];
|
||||
return dateStr;
|
||||
} else {
|
||||
return properties;
|
||||
}
|
||||
}
|
||||
|
||||
// old method
|
||||
//inline static NSDictionary *_td_old_checkToJSONObject(NSDictionary *properties, NSDateFormatter *timeFormatter) {
|
||||
// NSMutableDictionary<NSString *, id> *propertiesDic = [NSMutableDictionary dictionaryWithDictionary:properties];
|
||||
// for (NSString *key in [properties keyEnumerator]) {
|
||||
// if ([properties[key] isKindOfClass:[NSDate class]]) {
|
||||
// NSString *dateStr = [timeFormatter stringFromDate:(NSDate *)properties[key]];
|
||||
// propertiesDic[key] = dateStr;
|
||||
// } else if ([properties[key] isKindOfClass:[NSArray class]]) {
|
||||
// NSMutableArray *arrayItem = [properties[key] mutableCopy];
|
||||
// for (int i = 0; i < arrayItem.count ; i++) {
|
||||
// if ([arrayItem[i] isKindOfClass:[NSDate class]]) {
|
||||
// NSString *dateStr = [timeFormatter stringFromDate:(NSDate *)arrayItem[i]];
|
||||
// arrayItem[i] = dateStr;
|
||||
// }
|
||||
// }
|
||||
// propertiesDic[key] = arrayItem;
|
||||
// }
|
||||
// }
|
||||
// return propertiesDic;
|
||||
//}
|
||||
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user