A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 泡泡鱼 中级黑马   /  2016-3-19 21:33  /  1833 人查看  /  12 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

怎样学习block

12 个回复

倒序浏览
feng2706 来自手机 中级黑马 2016-3-19 21:36:19
沙发
多敲代码
回复 使用道具 举报
好好学习block
回复 使用道具 举报

谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢
回复 使用道具 举报
照片呢?
回复 使用道具 举报

额....  不敢发.怕被删帖.一会儿发群里~.不过谢你的踩啦  
回复 使用道具 举报

你学好了吗  block
回复 使用道具 举报
/*    函数指针: 指向函数的指针    指针函数: 返回值是指针类型的函数      int max(int x,int y){          return x>y?x:y;      }    */   #import <Foundation/Foundation.h> //声明函数 int max(int x,int y){          return x>y?x:y;      }   void test2(){      //调用函数     //使用函数名取调用函数,直接访问     //函数名,存放的是函数的首地址     int m = max(34,438);          //指针变量间接访问     //函数指针的定义:     //定义了一个函数指针变量,名称是p     // p 可以指向返回值是int 并且有两个int类型的参数的函数     //        int (*p)(int x,int y);     //        p = max;     //     //        m = p(34,438); //间接访问     //        NSLog(@"m = %d",m);          //p是一个指针变量?  还是一个类型?     // 此时把 返回值是int 有两个整型参数的函数,起了别名,别名是p     typedef int (*p)(int x,int y);          //p = max;     p pmax;     pmax = max;     NSLog(@"pmax = %d",pmax(34,438));  }  int main(int argc, const char * argv[]) {     @autoreleasepool {          //myblock 是没有参数,没有返回值的block类型的变量 //        void (^myblock)();                  //1,给没有参数,没有返回值的block起别名         //myblock 是一个类型         //给没有返回值,没有参数的代码块,起一个别名 myblock         typedef void (^myblock)();         //定义一个返回值是void没有参数的block变量,名称为b1         myblock b1;  //b1是一个变量,myblock是一个类型                  //给block变量赋值         b1 = ^{                      NSLog(@"test b1");         };         //执行block         b1();                  //2,给有参数的block起别名         typedef void (^blockType1)(int x,int y);         //使用别名定义block变量,并且初始化         //blockType 是一个类型         //bt是一个变量         blockType1 bt = ^(int x,int y){                      NSLog(@"x+y = %d",x+y);                  };                  bt(34,23);                  //3,给有参数,有返回值的block起别名         typedef int(^blockType2) (int x,int y);         //定义有参数,有返回值的block变量,名称是b2         blockType2 b2 = ^(int x,int y){                      return x+y;                  };                  int s = b2(23,10);         NSLog(@"s = %d",s);     }     return 0; }
回复 使用道具 举报
代码先敲七遍
回复 使用道具 举报

有道理~有道理~有道理~有道理~
回复 使用道具 举报
Eric_Jia 来自手机 中级黑马 2016-3-20 00:28:25
11#
我也懵着呢,Block 好难
回复 使用道具 举报
yuluoyu 来自手机 中级黑马 2016-3-20 10:12:32
12#
好好学习block
回复 使用道具 举报
赞一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马