Block
来源:互联网 发布:淘宝免费引流方法 编辑:程序博客网 时间:2024/05/16 14:43
Block简单语法
Block在typedef中的声明格式:typedef 返回值类型 (^块名称)(参数类型1,参数类型2,参数类型3.........);
Block普通的声明格式:返回值类型 (^块名称)(参数类型1,参数类型2,参数类型3.........);
Block变量的声明格式:块名称 变量名称1,变量名称2,变量名称3.......;
Block变量的赋值(实现),注意声明中的参数和返回值个数和类型要互相匹配,但是返回值类型在实现中无需标明但是块内必须return才行且类型要与声明的一致,最后在花括号外面记得加分号
//在无参数的情况下可以是下面的格式:
变量名 = ^{
//块里面操作,任意发挥
};
//标准的块变量的实现方法
变量名 = ^(){
//块的操作,随意.....
};
块的调用,实际上块是一种匿名函数,调用的格式跟函数的调用格式一样
块变量名(); //块使用typedef的情况下使用这种方式
块名称(); //没有使用typedef起别名的时候用这种方式
在块内部可以使用他所在的块中的外部变量,但是无法修改变量的值,若要修改变量的值需要在变量前面加上__block的关键字
块使用property的时候使用copy属性
例子:
//给块起别名
typedef void(^BLOCK) (int,int);
//创建块变量并且赋值
BLOCK b1 = ^(int a,int b){
NSLog(@"%d and %d",a,b);
};
//无参块的创建实现和调用
void (^myBlock)() = ^(void){
NSLog(@"这是一个无参块");
};
myBlock();
void (^myBlock2)();
myBlock2 = ^(){
NSLog(@"dshdskblhlsdhihfaldhf");
};
myBlock2();
有参块、有返回值的例子NSString * (^geshihua)(int) = ^(int a){
return [NSStringstringWithFormat:@"%d",a];
};
NSLog(@"%@",geshihua(19));
这只是基础篇,后面的高级应用还在学习中,感兴趣留意后面的更新,有错误的 请在下面指出
- Block
- block
- Block
- block
- block
- block
- block
- block
- block
- Block
- block
- Block
- Block
- Block
- Block
- block
- Block
- block
- xib、storyboard文件的使用
- 15/18位身份证号码正则表达式(详细版)
- python学习笔记 day1
- 使用jquery获取父元素或父节点的方法
- 创建日历类
- Block
- js 和 php 判断 是否的微信和其他的网页
- 蓝桥杯 - 特殊回文数
- IIS502.**报错配置错误:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的
- 关于函数strtok和strtok_r的使用要点和实现原理(二)
- 自定义控件之仿HD qq的弹出式小菜单
- Photoshop选区例子(一)用选区运算选择对象
- 减少使用Java应用服务器,迎接Docker容器(还没怎么看懂)
- ubuntu terminal 配色问题