使用下面的枚举器使用fastEnumeration时,我可能会遇到任何问题吗?我只问,因为代码示例(在线和书籍)似乎总是使用whileLoop。代码狙击工作正常,只是好奇我是否错过了潜在的问题。请注意,这不是一个没有错误检查的测试。
NSDirectoryEnumerator *dirEnum;
NSString *eachPath;
dirEnum = [fileManager enumeratorAtPath:sourceDir];
for(eachPath in dirEnum) NSLog(@"FILE: %@", eachPath);
加里
答案 0 :(得分:2)
这些示例使用while循环,因为快速枚举语法是该语言的最新补充。只要in
关键字后面的对象符合NSFastEnumeration
协议,您的代码就可以了。
实际上,由于NSEnumerator
中的默认实施只落实到-nextObject
,因此您无论如何都不会看到明显的速度差异。
答案 1 :(得分:0)
虽然通常没有提及,但您可以在任何NSEnumerator对象或子类(NSDirectoryEnumerator)对象上使用快速枚举。