NSEnumerator使用

NSEnumerator

①依附于集合类(NSArray,NSSet,NSDictionary),没有用来创建实例的接口。

②NSEnumerator的nextObject方法可以遍历每个集合元素,结束返回nil,通过与while结合使用可遍历集合中所有项。

+ (void)cleanCache  //清除缓存
{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    
    NSArray *contents = [fileManager contentsOfDirectoryAtPath:documentsDirectory error:NULL];
    NSEnumerator *e = [contents objectEnumerator];
    NSString *filename;
    while ((filename = [e nextObject])) {
        
        if (([[filename pathExtension] isEqualToString:@"plist"] && [filename rangeOfString:@"cheer.plist"].length == 0 && [filename rangeOfString:@"ReviewZanId"].length == 0) || [filename isEqualToString:@"com.hackem.SDWebImageCache.default"] || [filename isEqualToString:@"default"] || [filename isEqualToString:@"com.hubei.mobileNews"]) {
            
            [fileManager removeItemAtPath:[documentsDirectory stringByAppendingPathComponent:filename] error:NULL];
        }
    }
}

③对可变数组进行枚举操作时,不能通过添加或删除对象这类方式来改变数组容器。

你可能感兴趣的:(NSEnumerator使用)