• 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的方法实现一下传值。具体实例以后再继续。
  • 相关阅读:
    不能在注册表中识别出来python时的解决方法
    Biopython
    Biopython
    生信相关网站
    linux下的查找命令
    class
    不同版本的Eclipse安装SVN插件
    【如何快速的开发一个完整的iOS直播app】(原理篇)
    iOS 直播
    Ios-视频直播-知识点汇总-持续更新
  • 原文地址:https://www.cnblogs.com/Angelone/p/4362457.html
Copyright © 2020-2023  润新知