NSEnumerator用法小結

NSEnumerator

 

3)枚舉 (NSEnumerator)
遍歷數組每一個索引處的對象,你能夠編寫一個0到[array count]的循環,而NSEnumerator用來描述這種集合迭代運算的方式。
經過objectEnumerator向數組請求枚舉器,若是想從後向前瀏覽集合,可以使用reverseObjectEnumerator方法。在得到枚舉器後,能夠開始一個while循環,每次循環都向這個枚舉器請求它的下一個對象:nextObject。nextObject返回nil值時,循環結束。示例以下:html

 
  
1 // NSEnumerator示例
2 NSEnumerator *enumerator;
3 enumerator = [array objectEnumerator];
4 id thing;
5 while (thing = [enumerator nextObject]) {
6 NSLog(@"I found %@",thing);
7 }

 

 

 

對於可變數組進行枚舉操做時,主要不要添加或刪除數組中的對象。數組


4)快速枚舉
Objective-C2.0支持快速枚舉:如post

 
  
1 for (NSString *string in array)
2 {
3 NSLog(@" I found %@",string);
4 }

6

 

這個循環將會遍歷數組中的每一個元素,而且用變量string存儲每一個數組值。它比枚舉器語法更加簡潔快捷。url

 

 

 

 

 

 

NSEnumerator用法小結

 

 

 

 NSLog(@"Hello, World!");
NSDictionary *myDic=[[NSDictionary alloc]initWithObjectsAndKeys:@"張三",@"name",@"李四",@"name", nil];

NSUInteger count = [myDic count];
NSLog(@"詞典的數量爲: %lu",count);

NSEnumerator * myEnumerator = [myDic keyEnumerator];


for (NSObject *object in myEnumerator) {
NSLog(@"遍歷KEY的值: %@",object);
}

myEnumerator = [[myDic allValues] objectEnumerator];
NSString *value;
while((value = [myEnumerator nextObject]))
{
NSLog(@"遍歷的值: %@",value);
}

//經過KEY找到value
NSObject *myObject = [myDic objectForKey:@"name"];

if (myObject != nil) {
NSLog(@"經過KEY找到的value是: %@",myObject);
}

NSMutableDictionary *mydic2 = [NSMutableDictionary dictionaryWithCapacity:10];
[mydic2 setObject:@"Alex Hu" forKey:@"name"];
[mydic2 setObject:@"1388888888" forKey:@"mobile number"];

for (NSObject *object in [mydic2 objectEnumerator]) {
NSLog(@"遍歷的值: %@",object);
}

NSSet *mySet=[NSSet setWithObjects:@"A",@"B",@"C",@"D",[NSNumber numberWithInteger:123], nil];
count=[mySet count];
NSLog(@"count= %lu",count);

myEnumerator=[mySet objectEnumerator];
for (NSObject *object in myEnumerator) {
NSLog(@"myEnumerator value=%@",object);
if ([object isEqualTo:@"A"]) {
NSLog(@"找到A了");
}
if ([object isEqual:@"B"]) {
NSLog(@"找到B");
}
}

NSArray *mySetArr=[mySet allObjects];
for (NSUInteger i=0; i<[mySetArr count];i++) {
NSLog(@"%lu =>%@",i,[mySetArr objectAtIndex:i]);
}

if ([mySet containsObject:@"D"]) {
NSLog(@"集合中包含 D這個對象");
}
複製代碼
NSFileManager *fm=[NSFileManager defaultManager];
for(NSString *fileName in [fm enumeratorAtPath:documentsDirectory])
{
if([[fileName pathExtension]isEqualToString:@"jpg"])

{


}

}
複製代碼
相關文章
相關標籤/搜索