黑马程序员---第十篇 一些重要知识点总结

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、什么是预处理指令

    程序设计语言的预处理的概念:在编译之前进行的处理。 C语言的预处理主要有三个方面的内容: 1. 宏定义; 2.文件包含; 3. 条件编译。 预处理命令以符号“#”开头。

1、宏定义:有不带参数的宏定义、带参数的宏定义两种。终止宏定义的作用域,可以用#include命令;宏定义不涉及存储空间的分配、参数类型分配、参数传递、返回值问题。函数调用在程序运行时执行,而宏替换只是在编译处理阶段进行,所以带参数的宏比函数局域更高的执行效率。

2、条件编译:希望程序的其中一部分代码只有在满足一定条件时才进行编译,否则不参与编译(只有参与编译的代码最终才能被执行)。

3、文件包含:#include,它可以将一个文件的全部内容拷贝带另一个文件中;有两种形式:#include<文件名>和#include“文件名”。

二、NSArray的遍历问题

1、for循环

voidarrayFor()

{

//快速创建一个oc数组

 NSArray *array = @[@”one”,@”two”];

//遍历数组

for(inti=0; i<array.count ; i++)

{

  NSLog(@”array[%i]=%@”,i ,array[i]);

}

}

2、快速遍历for(ifobj in array)

voidarrayFor()

{

NSArray*array = @[@”one”,@”two”];

for(idobj in array)

{

   NSLog(@”%@”,obj);

}

}

3、调用block,原理:每遍历一个元素,就会调用一次block,并且把这个元素和下标当做block的参数传给id obj和idx

voidarrayFor()

{

  NSArray *array = @[@”one”,@”two”];

[arrayenumerateObjectsUsingBlock:^(id obj, NSInteger idx, BOOL *stop)

{NSLog(@”array[%zi]=%@”,idx,obj);

if(idx==1)

{*stop=YES;}

}];

4、通过迭代器遍历数组

voidarrayFor()

{

NSArray*array = @[@”one”,@”two”];

//获取数组的迭代器

NSEnumerator*enumerator = [array objectEnumerator];

idobj = nil;

//获取下一个数组元素,当下一个元素不为空的时候,继续遍历直到下个元素为空

while((obj=[enumerator nextObject])!=nil)

{

   NSLog(@”%@”,obj);

}

三、NSDictionary的遍历

1、for循环快速遍历

voiddictFor()

{

NSDictionary*dict=@{@”k1”:@”v1”,@”k2”:@”v2”};

//遍历字典的所有key

for(idkey in dict)

{

  id value=[dict objectForKey:key];

  NSLog(@”%@=%@”,key,value);

}

2、使用迭代器遍历

voiddictFor()

{

 NSDictionary*dict=@{@”k1”:@”v1”,@”k2”:@”v2”};

NSEnumerator*enumer=[dict keyEnumerator];

idkey =nil;

while(key=[enumernextObject])

{

  id value=[dict objectForKey:key];

  NSLog(@”%@=%@”,key ,value);

}

3、使用block遍历字典

voiddictFor()

{

  NSDictionary*dict=@{@”k1”:@”v1”,@”k2”:@”v2”};

[dictenumeratorKeysAndObjectsUsingBlock:^(id key ,id obj ,BOOL *stop)

{NSLog(@”%@=%@”,key,obj);} ];

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值