block小结--01

原创 2016年05月31日 19:24:15

1.block不能修改局部变量的值,要想修改,必须在局部变量前加一个__block

    1.1  __block对象在block中可以被修改,可以 重新赋值;

    1.2  block内部和外部同名的变量不是同一个地址的变量,地址发生了改变;

---------------------------------------------------------------------------------------------------------

        __block int a = 10;

         NSInteger b = 30;

        NSLog(@"1----a  block外的地址:%p",&a);

        NSLog(@"2----b =  block外的地址:%p",&b);

        void(^blo1)() = ^{

            a = 20;

            NSLog(@"5----a = %d",a);

            NSLog(@"6----a  block内的地址:%p",&a);

            NSLog(@"7----b =  block内的地址:%p",&b);

            NSLog(@"8----b = %ld",b);

        };

        NSLog(@"3----a  block外的地址:%p  --%d",&a,a);

        NSLog(@"4----b  block外的地址:%p  --%ld",&b,(long)b);


        blo1();

        NSLog(@"9----a  block外的地址:%p  --%d",&a,a);

        NSLog(@"10----b  block外的地址:%p  --%ld",&b,(long)b);


        //有参数,无返回值;

        void(^blo2)(int num1,int num2) = ^(int num1,int num2){

            NSLog(@"%d",num1 +num2);

            NSLog(@"11-----%d",a);

            NSLog(@"12-----%ld",b);

            NSLog(@"13------a  block外的地址:%p",&a);

            NSLog(@"14------b =  block外的地址:%p",&b);


        };

        blo2(10,20);

        NSLog(@"15------a  block外的地址:%p",&a);

        NSLog(@"16------b =  block外的地址:%p",&b);


---------------------------------------------------------------------------------------------------------

2016-05-31 18:52:22.043 --block[5906:837000] 1----a  block外的地址:0x7fff5fbff7a8

2016-05-31 18:52:22.044 --block[5906:837000] 2----b =  block外的地址:0x7fff5fbff788

2016-05-31 18:52:22.044 --block[5906:837000] 3----a  block外的地址:0x1005004d8  --10

2016-05-31 18:52:22.044 --block[5906:837000] 4----b  block外的地址:0x7fff5fbff788  --30

2016-05-31 18:52:22.044 --block[5906:837000] 5----a = 20

2016-05-31 18:52:22.045 --block[5906:837000] 6----a  block内的地址:0x1005004d8

2016-05-31 18:52:22.045 --block[5906:837000] 7----b =  block内的地址:0x100500028

2016-05-31 18:52:22.045 --block[5906:837000] 8----b = 30

2016-05-31 18:52:22.045 --block[5906:837000] 9----a  block外的地址:0x1005004d8  --20

2016-05-31 18:52:22.045 --block[5906:837000] 10----b  block外的地址:0x7fff5fbff788  --30

2016-05-31 18:52:22.045 --block[5906:837000] 30

2016-05-31 18:52:22.045 总结--block[5906:837000] 11-----20

2016-05-31 18:52:22.045 总结--block[5906:837000] 12-----30

2016-05-31 18:52:22.046 总结--block[5906:837000] 13------a  block外的地址:0x1005004d8

2016-05-31 18:52:22.046 总结--block[5906:837000] 14------b =  block外的地址:0x100700028

2016-05-31 18:52:22.046 总结--block[5906:837000] 15------a  block外的地址:0x1005004d8

2016-05-31 18:52:22.046 总结--block[5906:837000] 16------b =  block外的地址:0x7fff5fbff788

2016-05-31 18:52:22.046 总结--block[5906:837000] blo3内部返回的值  35

2016-05-31 18:52:22.047 总结--block[5906:837000] 70

Program ended with exit code: 0



http://blog.sina.com.cn/s/blog_8c87ba3b0101m599.html#cmt_2545676此里面的block知识我还在消化中;

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Typedef用法小结01

  • 2017-02-05 17:39
  • 44KB
  • 下载

iOS项目内block的使用小结(1)

单位项目中block用的非常普遍,导致我这种一瓶子不满半瓶子晃荡的选手很是忧伤,这几天研究这个感觉有了点收获,赶紧记下来,怕到时忘了,给自己留个印象。 block其实就是一段代码块,一个函数,一个方...

CSS中多列块的实现小结 display : inline-block 内联块

最近在折腾HTML5和CSS3    -->   示例页面 在做网页菜单的时候,最上面需要加一行工具栏,并排放的,那我想弄四个等宽的box,然后并排放,这样以后想扩展也很好扩展。 刚开...
  • misol
  • misol
  • 2011-11-03 19:40
  • 2663

Android 开发小结01

1.首先是安卓平台的搭建,先到谷歌安卓首页去下载(可能需要翻墙)android sdk包,下过来的几百K的是一个在线安装下载器,通过它勾选各种安卓版本环境(可能需要6~10小时),也可以使用他人已经下...

jQuery学习--Chapter01小结(jQuery介绍)

1.jQuery简介 Jquery是继prototype之后又一个优秀的Javascript框架。它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safa...

iOS每日小结-01续

· 1.4数据类型补充: 1)字符型:OC中每个字符只占一个字节,因此,单个字符不能用于保存中文。 2)转义字符: 3)★反斜线的使用:若在字符串中使用反斜线(\)如:@"c:\新建文件夹"...

小结_01:《重构:改善既有代码的设计》

重构的意义: 你永远不必说对不起————只要把出问题的地方修补好就行了。 以下小结各种重构技巧  Part I : 重构技术的基础之一:在对象之间搬移特性 ( 涉及概念: Metho...

MySql学习小结 2016-01-04

最近参加了一个面试,最后面试官叫我写出一个内链接查询的语句(查询出每个班级有多少学生?)我竟然写不出来,两年经验瞬间归零,十分尴尬。所以总结前人的经验和我的学习,将MySql的所有常用知识点总结出来,...

mfc 学习小结 2010_01_27

开始学习MFC也有几天了,主要的工作就是看孙鑫的教程,然后再看书,自己动手做。  刚开始结束Windows 编程,进度有点慢,着重打基础,理解底层原理和机制,复习总结一下。——————————————...

SQL查询命令的语法小结01

查询命令的完整语法: 一.一般语句: Select [all| distinct ] select-list   [ from tableView-list ]   [where search...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)