首页 > 其他 > 详细

block

时间:2015-03-24 14:23:37      阅读:201      评论:0      收藏:0      [点我收藏+]

     今天学习了有关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的方法实现一下传值。具体实例以后再继续。

block

原文:http://www.cnblogs.com/Angelone/p/4362457.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!