iOS开发——语法OC篇&Block回顾

Block回顾

这里知识简单介绍一下关于Block的语法,如果你觉得这里很简单或者想学习更深入的的使用清查看记者之前写的使用block传值和高级Block使用:

http://www.cnblogs.com/iCocos/p/4534281.html

http://www.cnblogs.com/iCocos/p/4550169.html

http://www.cnblogs.com/iCocos/p/4659878.html

http://www.cnblogs.com/iCocos/p/4655846.html

  • block : block 函数,代码块
  • block 是一个 "特殊" 对象

函数:

  • 1.无返回值无参数
  • 2.无返回值有参数
  • 3.有返回什又有参数

Block:

  • 1.无返回值无参数
  • 2.无返回值有参数
  • 3.有返回什又有参数

无返回值无参数

C语言函数:

1 //无返回值无参数函数
2 void say1(){
3     NSLog(@"say1.....");
4 }
    // 调用函数

    say1();

OC代码块:

 1 //1.无返回值无参数 block
 2
 3 void test1(){
 4
 5     //1.无返回值无参数 block
 6
 7     void (^say1Block)() = ^{
 8
 9         NSLog(@"say1block...");
10
11     };
12
13     // 调用block
14
15     say1Block();
16
17 }

无返回值有参数

C语言函数:

1 //无返回值有参数函数
2
3 void say2(int age){
4
5     NSLog(@"I‘am %d year old!",age);
6
7 }
    //调用
    say2(18);

OC代码块:

 1 // 2.无返回值有参数 block
 2
 3 void test2(){
 4
 5
 6     void (^say2Block)(int) = ^(int age){
 7
 8         NSLog(@"I‘am %d year old!",age);
 9
10     };
11
12
13     say2Block(20);
14
15
16
17 }

有返回值有参数

C语言函数:

1 //有返回值有参数函数
2
3 int sum(int a,int b){
4
5     return a + b;
6
7 }
8
9  

OC代码块:

 1 //3.有返回什又有参数 block
 2
 3 void test3(){
 4
 5       int (^sumBlock)(int,int) = ^(int a,int b){
 6
 7             return a + b;
 8
 9         };
10
11         int result1 = sum(10, 10);
12
13         int result2 = sumBlock(11,11);
14
15         NSLog(@"result1:%d result2:%d",result1,result2);
16
17
18
19         // 对block进行typedef
20
21
22
23         // 对"无返回值" 无参数block 进行重定义
24
25         typedef void (^Say2Block)();
26
27
28
29         Say2Block block = ^{
30
31             NSLog(@"Say2Block ========");
32
33         };
34
35
36
37         block();
38
39 }
时间: 08-13