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;
版权声明:本文为博主原创文章,未经博主允许不得转载。
OC基础:block.字面量 分类: ios学习 OC 2015-06-22 19:08 155人阅读 评论(0) 收藏的更多相关文章
- linux常用的压缩与解压缩命令 分类: 学习笔记 linux ubuntu 2015-07-05 19:38 38人阅读 评论(0) 收藏
1.gzip 压缩 gzip 是压缩文件,压缩之后文件后缀为.gz 用法:gzip 选项 [文件] 2.gunzip 解压 这个命令与gzip的功能刚好相反,这个是解压. 用法 gunzip 选项 [ ...
- shell入门之函数应用 分类: 学习笔记 linux ubuntu 2015-07-10 21:48 77人阅读 评论(0) 收藏
最近在学习shell编程,文中若有错误的地方还望各位批评指正. 先来看一个简单的求和函数 #!/bin/bash #a test about function f_sum 7 8 function f ...
- linux中的网络通信指令 分类: 学习笔记 linux ubuntu 2015-07-06 16:02 134人阅读 评论(0) 收藏
1.write write命令通信是一对一的通信,即两个人之间的通信,如上图. 效果图 用法:write <用户名> 2.wall wall指令可将信息发送给每位同意接收公众信息的终端机用 ...
- ubuntu14.04使用root用户登录桌面 分类: 学习笔记 linux ubuntu 2015-07-05 10:30 199人阅读 评论(0) 收藏
ubuntu安装好之后,默认是不能用root用户登录桌面的,只能使用普通用户或者访客登录.怎样开启root用户登录桌面呢? 先用普通用户登录,然后切换到root用户,然后执行如下命令: vi /usr ...
- linux中echo的用法 分类: 学习笔记 linux ubuntu 2015-07-14 14:27 21人阅读 评论(0) 收藏
1.echo命令我们常用的选项有两个,一个是-n,表示输出之后不换行,另外一个是-e,表示对于转义字符按相应的方式处理,如果不加-e那么对于转义字符会按普通字符处理. 2.echo输出时的转义字符 \ ...
- shell脚本调试 分类: 学习笔记 linux ubuntu 2015-07-14 12:49 53人阅读 评论(0) 收藏
1.sh -x script 这将执行脚本并显示所有变量的值 如,脚本: #!/bin/bash #a test about shift if [ $# -le 0 ] then echo " ...
- shell入门之流程控制语句 分类: 学习笔记 linux ubuntu 2015-07-10 16:38 89人阅读 评论(0) 收藏
1.case 脚本: #!/bin/bash #a test about case case $1 in "lenve") echo "input lenve" ...
- shell入门之变量测试 分类: 学习笔记 linux ubuntu 2015-07-10 15:49 31人阅读 评论(0) 收藏
格式:test 测试条件 字符串测试: 注意空格: test str1 == str2 测试字符串是否相等 test str1 != str2 测试字符串是否不相等 test str1 测试字符串是否 ...
- shell脚本实现冒泡排序 分类: 学习笔记 linux ubuntu 2015-07-10 14:16 79人阅读 评论(0) 收藏
手动输入一行字符串,并对其排序. 脚本如下: #!/bin/bash #a test about sort echo "please input a number list" re ...
随机推荐
- Intel微处理器学习笔记(三) 不可见寄存器
参考资料: 1. http://blog.chinaunix.net/uid-20797642-id-2495244.html 2. http://www.techbulo.com/708.htm ...
- MVC动态二级域名解析
动态二级域名的实现: 应用场景:目前产品要实现block功能,因为工作需要实现二级域名:www.{CompanyUrl}.xxx.com 假设产品主域名入口为:www.xxx.com 公司员工管理:w ...
- JavaMail直接发送邮件
一般用JavaMail发送邮件都需要先登录到外部smtp服务器(如smtp.163.com) 二次转发,其实只要得到域名的邮件交换服务器地址(MX)就可以直接将邮件发出 这里用到了dnsjava(下载 ...
- [原][JSBSim]基于qt代码实现:TCP|UDP与飞行模拟软件JSBSim的通信,现实模型飞行!
废话没有,上关键代码 头文件 #include <QUdpSocket> #include <qtcpsocket.h> #ifndef vrUDP #define vrUDP ...
- Python的url解析库--urlparse
一.urlparse解析url的query并构建字典 下面的方法主要的功能: 解析url的各个部分,并能够获取url的query部分,并把query部分构建成dict. 具体的代码实现: >&g ...
- Confluence 6 教程:在 Confluence 中导航
当你对 Confluence 有所了解后,你会发现 Confluence 使用起来非常简单.这个教程主要是针对你使用的 Confluence 界面进行一些说明,同时向你展示在那里可以进行一些通用的任务 ...
- Sereja and Table CodeForces - 425B (暴力,状压)
大意: 给定01矩阵, 求翻转尽量少的数字, 使得所有0或1的连通块为矩形, 若至少要翻转超过k次, 输出-1
- ssh The authenticity of host '10.11.26.2 (10.11.26.2)' can't be established
The authenticity of host '10.11.26.2 (10.11.26.2)' can't be established. ECDSA key fingerprint is SH ...
- loj#101. 最大流 dinic+当前弧
板子题 当前弧优化版本 目前效率最高 //#pragma comment(linker, "/stack:200000000") //#pragma GCC optimize(&q ...
- ZOJ 2770 差分约束+SPFA
Burn the Linked Camp Time Limit: 2 Seconds Memory Limit: 65536 KB It is well known that, in the ...