一段可以清理NSArray中的空对象的代码(递归)
Posted 小徐只是个搬砖的
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一段可以清理NSArray中的空对象的代码(递归)相关的知识,希望对你有一定的参考价值。
- (NSArray *)clearAllNullObject{ NSMutableArray *array = [self mutableCopy]; for (int i = 0;i < array.count;i++) { id obj = array[i]; if ([obj isKindOfClass:[NSDictionary class]]){ NSMutableDictionary *dict = [obj mutableCopy]; for (int j = 0; j<dict.allKeys.count; j++) { id tObj = dict[dict.allKeys[j]]; if ([tObj isKindOfClass:[NSNull class]]){ [dict removeObjectForKey:dict.allKeys[j]]; j--; } if ([tObj isKindOfClass:[NSArray class]]){ NSArray *to = [tObj clearAllNullObject]; [dict setObject:to forKey:dict.allKeys[j]]; } } [array replaceObjectAtIndex:i withObject:dict]; } if ([obj isKindOfClass:[NSArray class]]){ [array replaceObjectAtIndex:i withObject:[obj clearAllNullObject]]; } } return array; }
使用方法:
创建NSArray的category
NSArray *obj = [data clearAllNullObject];
以上是关于一段可以清理NSArray中的空对象的代码(递归)的主要内容,如果未能解决你的问题,请参考以下文章
带有asset.tracks(withMediaType :)的空NSArray的索引0超出范围