文档章节

//使用block注意事项

JasonMs
 JasonMs
发布于 2015/09/05 12:02
字数 258
阅读 62
收藏 1
#import <Foundation/Foundation.h>

typedef int(^block)(int, int);
int d = 10;
int main(int argc, const char * argv[])
{
    
    
    
    //1、block和局部变量
    //局部变量在栈区
    //block中的变量 只能使用 不能修改  在内存中的堆区中复制一份
    int c = 10;
    NSLog(@"c = %d", c);
    NSLog(@"c address = %p", &c);
    
    int (^b)(int, int) = ^int(int a, int b){
        NSLog(@"c = %d", c);
        NSLog(@"c address = %p", &c);
        return 0;
    };
     NSLog(@"%d",b(1, 2));
    
    //2.__block和局部变量
    //局部变量在栈区
    //block区域使用的变量在堆区
    __block int e = 10;
    NSLog(@"e = %d", e);
    NSLog(@"e address = %p", &e);
    
    int (^ee)(int, int) = ^int(int a, int b){
        e++;
        NSLog(@"e = %d", e);
        NSLog(@"e address = %p", &e);
        return 0;
    };
    NSLog(@"%d",ee(1, 2));
    
    //3、block和全局变量
    //全局变量在block中能够使用并且修改。
    //全局变量在内存的静态代码区
    //block块中的变量也在静态代码区 并且两个数的地址相同
    NSLog(@"d = %d", d);
    NSLog(@"d address = %p", &d);
    
    int (^b2)(int, int) = ^int(int a, int b){
        d++;
        NSLog(@"d = %d", d);
        NSLog(@"d address = %p", &d);
        return 0;
    };
    NSLog(@"%d",b2(1, 2));

© 著作权归作者所有

JasonMs

JasonMs

粉丝 7
博文 49
码字总数 20597
作品 1
朝阳
程序员
私信 提问
iOS开发一些细节

block 的注意事项 使用修饰属性 想不循环应用,那么在 block 外面这样声明 接着,在 block 里面这样 这样既防止循环应用,又避免 block 内部 self 会无效的可能 里面这样使用的很多 的优化 ...

KevinEmily
2016/11/10
19
1
[IBM DW] GAE 应用文件上传的三种方法

简介: 文件上传 / 下载是应用开发中非常常见的需求,尤其是 CMS、博客系统。各种语言都有自己的解决方法。Google App Engine(以下简称 GAE)作为云计算的平台,为应用提供了广阔的扩展空间...

红薯
2010/11/01
1K
0
CSS注意事项(一)

层叠的概念 层叠规则重点:自上而下,相同属性:一般后面的覆盖前面的,优先级高的覆盖优先级低的 层叠是CSS的核心机制,理解了它才能以最经济的方式写出最容易改动的CSS, 让文档外观在达到...

ShirlyK
2016/08/27
38
0
微信小程序原生组件swiper在mpvue工程中使用注意事项

时下微信小程序开发框架中mpvue是主流的选择之一。其中,免不了还要使用部分小程序原生的组件。swiper组件几乎成为典型小程序界面的必备组成组件之一。但是,我在试用中遇到一个典型问题,很...

googlingman
2018/12/20
0
0
深入浅出-iOS Block原理和内存中位置

Posted by 微博@iOS音视频 原创文章,自由转载-非商用-非衍生-保持署名 简介 今天回顾一下blcok,基本用法在我的这篇文章中有较为详细的描述,这次不再回顾,本次 block的原理和内存中的位置...

iOS音视频
2016/02/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
5
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
7
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
4
0
Django的ChoiceField和MultipleChoiceField错误提示,选择一个有效的选项

在表单验证时提示错误:选择一个有效的选项 例如有这样一个表单: class ProductForm(Form): category = fields.MultipleChoiceField( widget=widgets.SelectMultiple(), ...

编程老陆
昨天
7
0
Vue核心概念及特性 (一)

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。 > 特点: 易用,灵活,高效,渐进式框架。 > 可以随意组合需要用到的模块 vue + components + vue-router + vuex + v...

前端优选
昨天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部