block 的细节和本质
案例1:
普通的局部变量,block内部只会引用它初始的值(block定义那一刻),不能跟踪它的改变
    
输出:1
案例2:
block内部能够一直引用被__block修饰的变量
    
输出:2
案例3:
block内部能够一直引用被static修饰的变量(初始化的时候就一直存放在内存;所以block能够动态访问)
    
输出:2
案例4:
block内部能够一直引用全局变量
    
输出:2
如果想要查看由OC转成C的代码,可以cd到具体工程路径, 然后输入:
clang -rewrite-objc main.m
然后open ./
block 的细节和本质的更多相关文章
- 新浪微博客户端(34)-block的细节与本质
		
main.m #import <Foundation/Foundation.h> void test4(); int main(int argc, const char * argv[]) ...
 - iOS中Block使用探索
		
Block介绍 Block在ios 4.0之后加入,并大量使用在新的ios api中.block是一个匿名的代码块,可以传递给其他对象的参数,并得到返回值.从本质上讲,block同其他普通的变量类似, ...
 - iOS  block 的底层实现
		
其实swift 的闭包跟 OC的block 是一样一样的,学会了block,你swift里边的闭包就会无师自通. 参考:http://www.jianshu.com/p/e23078c11518 ht ...
 - block和delegate的区别
		
代理 可读性高 大部分可以属性 block 写的代码少 一般作为参数通知 占用资源 无论是block还是delegate模式本质上都是回调,使用block,其优点是回调的block代码块直 ...
 - Masonry使用注意事项
		
1 理解自身内容尺寸约束与抗压抗拉 自身内容尺寸约束:一般来说,要确定一个视图的精确位置,至少需要4个布局约束(以确定水平位置x.垂直位置y.宽度w和高度h).但是,某些用来展现内容的用户控件,例如文 ...
 - Java多线程总结(一)多线程基础
		
多线程是Java学习的非常重要的方面,是每个Java程序员必须掌握的基本技能.本文只是多线程细节.本质的总结,并无代码例子入门,不适合初学者理解.初学者学习多线程,建议一边看书.看博文,以便写代码尝试 ...
 - Spark踩坑记——从RDD看集群调度
		
[TOC] 前言 在Spark的使用中,性能的调优配置过程中,查阅了很多资料,之前自己总结过两篇小博文Spark踩坑记--初试和Spark踩坑记--数据库(Hbase+Mysql),第一篇概况的归纳了 ...
 - Java开发知识之Java类的高级特性,内部类.以及包使用.跟常量关键字
		
Java开发知识之Java类的高级特性,内部类.以及包使用.跟常量关键字 一丶Java中包的机制 首先包其实就是个文件夹.作用就是管理类. Java中每次定义一个类的时候.通过Java编译之后.都会生 ...
 - JLRoutes使用
		
JLRoutes 地址:https://github.com/joeldev/JLRoutes JLRoutes原理: 它是通过url scheme来实现app内部,web到app,app与app之间 ...
 
随机推荐
- mysql数据库2
			
命令行客户端软件MySQL Command Line Client, 打开该程序,输入数据库密码,登陆到MySQL软件, 如果想通过该命令行工具来操作MySQL软件,只需要在"mysql&g ...
 - C# toolstrip 上添加DateTimePicker Control控件
			
private void AddDTPtoToolstrip( n){DateTimePicker dtp = DateTimePicker;dtp.Width = 110;dtp.Format = ...
 - python登录网易163邮箱,爬取邮件
			
from common import MyRequests,LoggerUntil,handle_exception myRequests.update_headers({ 'Accept':'tex ...
 - PHP 免费获取手机号码归属地
			
一.淘宝网API API地址: http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15850781443 参数: tel:手机号码 返回 ...
 - JQuery难点备忘
			
1 jquery绑定事件如何传递参数 $("#btn").bind("click",{"id":"111"," ...
 - 九度 1482:玛雅人的密码(BFS)
			
题目描述: 玛雅人有一种密码,如果字符串中出现连续的2012四个数字就能解开密码.给一个长度为N的字符串,(2=<N<=13)该字符串中只含有0,1,2三种数字,问这个字符串要移位几次才能 ...
 - 【Ceisum】Max转GLTF
			
参考资料:https://blog.csdn.net/u011394175/article/details/78919281 1.在3DsMax中加入COLLADA插件:COLLADA-MAX-PC_ ...
 - iOS开发-获取子视图坐标系中Point、Rect在父视图坐标系中的实际值
			
iOS提供了方法来完成上述值得转换 convertRect:toView:, convertRect:FromView: convertPoint:toView: and convertPoint:f ...
 - gitlab 使用现有 nginx 服务器
			
gitlab 安装自带 nginx,如果想利用原有 nginx,可按如下操作: 8.0 版本 socket 文件位置有变动,感谢评论区的同学. nginx 增加虚拟主机配置 # gitlab sock ...
 - 《Lua程序设计》9.1 协同程序基础 学习笔记
			
协同程序(coroutine)与线程(thread)差不多,也就是一条执行序列,拥有自己独立的栈.局部变量和指令指针,同时又与其他协同程序共享全局变量和其他大部分东西.从概念上讲线程与协同程序的主要区 ...