黑马程序员技术交流社区

标题: 葵花宝典练习题 参考答案1 [打印本页]

作者: wg592930    时间: 2015-8-17 11:57
标题: 葵花宝典练习题 参考答案1
4》NSArray遍历的四种方法
第一种,for循环
void arrayFor()
{
//快速创建一个oc数组
NSArray *array = @[@”one”,@”two”];
//遍历数组
for(int i=0; i<array.count ; i++)
{
NSLog(@”array[%i]=%@”,i ,array);
}
}
第二种,快速遍历for(if obj inarray)
void arrayFor()
{
NSArray *array = @[@”one”,@”two”];
for(id obj in array)
{
  NSLog(@”%@”,obj);
}
}
第三种  调用block,原理:每遍历一个元素,就会调用一次block,并且把这个元素和下标当做block的参数传给id obj和idx
void arrayFor()
{
NSArray *array = @[@”one”,@”two”];
[array enumerateObjectsUsingBlock:^(idobj, NSInteger idx, BOOL *stop)
{NSLog(@”array[%zi]=%@”,idx,obj);
if(idx==1)
{*stop=YES;}
}];
第四种 通过迭代器遍历数组
void arrayFor()
{
NSArray *array = @[@”one”,@”two”];
//获取数组的迭代器
NSEnumerator *enumerator = [arrayobjectEnumerator];
id obj = nil;
//获取下一个数组元素,当下一个元素不为空的时候,继续遍历直到下个元素为空
while((obj =[enumeratornextObject])!=nil)
{
  NSLog(@”%@”,obj);
}
3>NSDictionary的遍历
第一种  for循环快速遍历
void dictFor()
{
NSDictionary*dict=@{@”k1”:@”v1”,@”k2”:@”v2”};
//遍历字典的所有key
for(id key in dict)
{
id value=[dict objectForKey:key];
NSLog(@”%@=%@”,key,value);
}
第二种 使用迭代器遍历
void dictFor()
{
NSDictionary*dict=@{@”k1”:@”v1”,@”k2”:@”v2”};
NSEnumerator *enumer=[dictkeyEnumerator];
id key =nil;
while(key=[enumer nextObject])
{
id value=[dict objectForKey:key];
NSLog(@”%@=%@”,key ,value);
}
第三种 使用block遍历字典
void dictFor()
{
   NSDictionary*dict=@{@”k1”:@”v1”,@”k2”:@”v2”};
[dictenumeratorKeysAndObjectsUsingBlock:^(id key ,id obj ,BOOL *stop)
{NSLog(@”%@=%@”,key ,obj);}
];


作者: Phoenix21    时间: 2015-8-17 14:07
感谢楼主分享,终于有了个方向




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2