一、枚舉:NSEnumerator
依附于集合類(NSArray,NSSet,NSDictionary),沒有用來創建實例的接口。
NSEnumerator的nextObject方法可以遍歷每個集合元素,結束返回nil,通過與while結合使用可遍歷集合中所有項。
對可變數組進行枚舉操作時,不能通過添加或刪除對象這類方式來改變數組容器。
二, 代碼實例:
1. 枚舉器
NSEnumerator *enumerator=[array objectEnumerator];
while(id obj = [enumerator nextObject])
{
NSLog(@"I found %@",obj);
}2. 快速枚舉
for(NSString *str in array)
{
NSLog(@"I found %@",str);
}3. 索引法
for(int i=0;i<[array count];i++)
{
NSLog(@"I found %@",[array objectAtIndex:i]);
}4. 代碼塊法
[array enumerateObjectsUsingBlock:^(NSString *str,NSUInteger index,Bool *stop)
{
NSLog(@"I found %@",str);
}];一個文件查找器代碼:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool
{
NSFileManager *manager;
manager = [NSFileManager defaultManager];
NSString *home;
home = [@"~" stringByExpandingTildeInPath];
NSDirectoryEnumerator *direnum; //文件目錄遍歷器
direnum = [manager enumeratorAtPath:home]; //實例方法-enumeratorAtPath用于把遍歷的路徑傳給manager
NSMutableArray *files; //用可變數組存放查找出的jpg文件名
files = [NSMutableArray arrayWithCapacity:42];
for(NSString *filename in direnum) //(-)pathExtension查找后綴字符
{
if ([[filename pathExtension] isEqualTo: @"jpg"])
{
[files addObject: filename];
}
}
for(NSString *filename in files)
{
NSLog(@"%@",filename);
}
}
return 0;
}免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。