NSDictionary에 NSDictionary 단순화 포함 여부 판단
사고방식: 사전이 끼워 넣은 사전의 상황을 고려해야 한다. 간단한 귀속 검색이 가능하다. 다른 더 간단한 방법이 있다면 메모 토론을 환영한다~
#pragma mark -
///
/// @param data object
+ (NSDictionary *)handleWithData:(NSDictionary *)data {
if (![data isKindOfClass:[NSDictionary class]]) {
return nil;
}
NSMutableDictionary *newData = [NSMutableDictionary dictionaryWithDictionary:data];
__block BOOL hasConverData = NO;
for (NSDictionary *obj in [XQMTestConfigManager shareManager].config.paramsConvertor) {
id condition = [obj objectForKey:@"condition"];
NSDictionary *conditionDict = ([condition isKindOfClass:[NSDictionary class]]) ? condition : nil;
BOOL match = [self containsData:data byCondition:conditionDict];
if (match) {
...
}
}
return hasConverData ? [newData copy] : data;
}
///
/// @param data
/// @param condition
+ (BOOL)containsData:(NSDictionary *)data byCondition:(NSDictionary *)condition {
__block BOOL match = NO;
if (!(data && [data isKindOfClass:[NSDictionary class]] && data.count > 0)) {
return match;
}
if (!(condition && [condition isKindOfClass:[NSDictionary class]] && condition.count > 0)) {
return match;
}
[condition enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
id dValue = [data objectForKey:key];
if (dValue == nil) {
match = NO;
} else if ([obj isKindOfClass:[NSDictionary class]] && [dValue isKindOfClass:[NSDictionary class]]) {
match = [self containsData:dValue byCondition:obj];
} else {
match = [dValue isEqual:obj];
}
if (!match) {
*stop = YES;
}
}];
return match;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
IOS에서 ReplayKit 및 RTC 사용 방법응용된 소리와 아나운서의 소리를 포함한다.이 두 가지 수요를 감안하여 우리는 스크린 공유를 하는 생방송에 필요한 미디어 흐름을 간단하게 분석할 수 있다. 만약 우리가 Audio App과 Audio Mic를 두 개의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.