您的位置:首页 > 职场人生

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

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);} ];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: