block

     今天学习了有关block的一点点儿知识,在此对其整理一下。

 1 #import "ViewController.h"
 2 
 3 @interface ViewController ()
 4 {
 5     UISlider *_slider;
 6 }
 7 
 8 @end
 9 
10 @implementation ViewController
11 //①普通的一个函数
12   int add(int a, int b){
13     return a+b;
14 }
15 
16 
17 - (void)viewDidLoad
18 {
19     [super viewDidLoad];
20 //①普通函数的调用
21     int num = add(2,4);
22 //②指针函数的调用
23     int (*addAlias)(int,int) = add;
24     num = addAlias(4,5);
25     
26     
27 //③block的声明^,不需要函数的名字,跟指针有异曲同工之处
28     int (^addBlock)(int,int) = ^(int a,int b){
29         return a + b;
30     };
31    num = addBlock(4,5);
32     NSLog(@"========%d",num);
33     
34     __block int a = 5;
35     __weak UISlider *slider = _slider;//将slider变为弱引用
36     //声明block的时候,用到外界变量,那么会把外界变量的值保存下来,之后修改外界变量的值,block中的结果还是修改前的结果,如果变量用__block修饰,那么调用block语句块的时候,会实时调用外界的这个变量
37     void (^ocBlock)() = ^(){//()可以省略掉
38         slider.value = 1;
39         NSLog(@"%d",a);//将a=5复制一份,与a = 10无关
40     };
41     a = 10;
42     ocBlock();
43 }
44 @end
因为对代理方面的东西搞的不是很懂,所以想用一下block的方法实现一下传值。具体实例以后再继续。
posted @ 2015-03-24 13:04  Angelone  阅读(130)  评论(0编辑  收藏  举报