黑马程序员---第十篇 一些重要知识点总结
2015-05-06 22:57
239 查看
------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);} ];
一、什么是预处理指令
程序设计语言的预处理的概念:在编译之前进行的处理。 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);} ];
相关文章推荐
- 黑马程序员-winform视频总结的一些知识点
- 黑马程序员——运算符及语句的应用,一些小知识点总结
- 黑马程序员—C重点--总结一些琐碎的知识点
- 【黑马程序员】C#基础中一些知识点总结备忘
- 【黑马程序员】C#面向对象中一些知识点总结和备忘
- 黑马程序员_sql一些知识点总结
- 在实际项目中总结的一些CSS的使用技巧和重要知识点。
- android 一些重要的知识点总结
- 黑马程序员-- 总结一些必要的理解的知识点
- 黑马程序员————OC基础学习重要小知识点总结
- 黑马程序员-Java中IO流知识点总结
- PHP中最容易忘记的一些知识点总结
- 黑马程序员---自学随堂笔记----String的一些知识点
- 黑马程序员关于Ado。Net的一些总结
- PHP中一些重要的函数总结
- 黑马程序员--刚学完集合,也看了一些资料,做个总结,
- 关于Linux知识技能比赛一些知识点的总结
- 黑马程序员--正则表达式知识点总结
- Android开发网上的一些重要知识点
- 总结Android模块化的一些知识点