A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wg592930 中级黑马   /  2015-8-17 11:57  /  692 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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);}
];

1 个回复

倒序浏览
感谢楼主分享,终于有了个方向
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马