zoukankan      html  css  js  c++  java
  • OC基础:block.字面量 分类: ios学习 OC 2015-06-22 19:08 155人阅读 评论(0) 收藏

    block 块语法,可以用block去保存一段代码,或者封装一段代码.

    block 实际是由c语言实现的,执行效率很高.

    block 实际借鉴了函数指针的语法.

    block,在多线程、异步任务,集合遍历,集合排序、动画专场用得多

    block

    (^)(参数类型1 参数名1,参数类型2 参数名2...);

    返回值类型  (^)();

    1.没有参数,括号也不能省略

    2.参数名可以省略


    void(^myBlock1)();   无参数无返回值

    void(^myBlock2)(int a,int b);   有参数无返回值

    int(^myBlock3)();    无参数有返回值

    int(^myBlock4)(int a,int b);   有参数有返回值


    block实现

    格式:

    ^(参数类型1 参数名1,参数类型2 参数名2....){

    执行代码

    };

    注意{ }外面需要加;


    如:myBlock1=^(){

    NSLog(@"吃糖吗?");

    };


    block调用

    myBlock1();


    起别名:typedef int(^BLOCK)(int ,int );   


    block定义时,block块中的代码不执行,调用block的时候block块中的代码才执行.block是c语言中的函数的一种拓展.


    block块内部访问变量

    1.全局变量block可以直接使用,不需要加_block修饰

    2.局部变量需要加__block修饰,才能在block块内部修改

    3.局部变量不加__block修饰,只能使用(看),无法修改


    -----------------------------------------------------------------------------------

    字面量:便利的表示方法

     

    NSNumber *number1=@100;

    NSArray *array1=@[@"1",@"2",@"3"];

    NSMutableArray *mArray=@[@"1",@"2",@"3"].mutableCopy;

    //字典的字面量

    //    :前是key   :后是value

        NSDictionary *dict=@{@"a":@"1",@"b":@"2",@"c":@"3"};

     NSMutableDictionary *mDict=@{@"a":@"1",@"b":@"2",@"c":@"3"}.mutableCopy;



    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Brunch with a Friend 与朋友共进午餐
    Linux使用tcpdump抓取网络数据包示例
    Linux LVM逻辑卷配置过程详解
    Linux不停往外发包
    jumpserver遇到的坑
    Python3.5 使用Sqlite3
    git rebase小计(转)
    pip3 更改安装源
    jquery ajax(3).post
    jquery ajax (2)实例 .GET
  • 原文地址:https://www.cnblogs.com/shaoting/p/4619817.html
Copyright © 2011-2022 走看看