2009-12-09 97 views
2

使用下面的枚舉器使用fastEnumeration可能會丟失任何問題嗎?我只問作爲代碼示例(在線&書)似乎總是使用whileLoop。代碼sniped工作正常,只是好奇,如果我錯過了一個潛在的問題。請不要這只是一個沒有錯誤檢查的測試。用enumeratorAtPath快速枚舉?

NSDirectoryEnumerator *dirEnum; 
NSString *eachPath; 

dirEnum = [fileManager enumeratorAtPath:sourceDir]; 
for(eachPath in dirEnum) NSLog(@"FILE: %@", eachPath); 

加里

回答

2

這些示例使用while循環,因爲快速枚舉語法是該語言的最新增加語言。只要in關鍵字後面的對象符合NSFastEnumeration協議,您的代碼就沒問題。

實際上,由於NSEnumerator中的默認實現僅落入-nextObject,所以無論哪種方式,您都不會看到明顯的速度差異。

+0

啊我明白了,謝謝。 – fuzzygoat 2009-12-09 19:21:27

0

雖然它往往沒有提到你可以在任何NSEnumerator對象或子類(NSDirectoryEnumerator)對象上使用快速枚舉。