zoukankan      html  css  js  c++  java
  • iOS BLOCK回调:(妖妖随笔)

    typedef void(^myBlockTest)(int);//声明一个block块

     -(void)testBlock:(NSString *)str andBlock:(myBlockTest)block

    {

     

       3. NSLog(@"str===%@",str);

       4. //block(100);  //将100传给参数intParameter,回调block的实现函数

     

    //block块的回调,当这行代码不注释时,

    控制台输出:

              NonAtomicTest[2841:113472] str===我是字符窜

              NonAtomicTest[2841:113472] 实现block

              NonAtomicTest[2898:116086] 大于10

     

    //当这行代码注释时

    控制台输出:NonAtomicTest[2841:113472] str===我是字符窜

     

    }

    -(void)test1

    {

     1.     NSString *str = @"我是字符窜";

     2.   [self testBlock:str andBlock:^(int intParameter) {

           // str = @"1111”;

           //这行代码是错误的,因为这个大括号里面是block块的实现,它只可以访问block块的参数intParameter,不可以访问testBlock:andBlock:这个函数的参数str。要想访问str,只可以在testBlock:andBlock:这个函数的实现函数里面才可以访问。

         5.   NSLog(@"实现block");

         6.   if (intParameter>10) {

                NSLog(@"大于10");

            }

            else

            {

                NSLog(@"不大于10");

            }

        }];

    }

    这个例子已经标出调用顺序,这里将block块可以看作是内联函数

     

    爱code的妖妖
  • 相关阅读:
    android模拟器EditText 不能用物理键盘输入,也不能用电脑键盘输入
    Java中HashMap遍历的两种方式
    Android平台下基于XMPP的IM研究
    基于MINA框架快速开发网络应用程序
    Java中ArrayList遍历的4种方法
    Java在ACM中的应用
    Java大数
    zoj 1406 Jungle Roads
    hdoj 1009 FatMouse' Trade
    Action 相关组件
  • 原文地址:https://www.cnblogs.com/yaoyao0110/p/4813129.html
Copyright © 2011-2022 走看看