美文网首页
关于block的浅层认识

关于block的浅层认识

作者: Scott_Dove | 来源:发表于2018-09-07 09:51 被阅读0次

1.block要用copy修饰,还是用strong

block本身是像对象一样可以retain,和release。但是,block在创建的时候,它的内存是分配在栈(stack)上,而不是在堆(heap)上。他本身的作于域是属于创建时候的作用域,一旦在创建时候的作用域外面调用block将导致程序崩溃。

使用retain也可以,但是block的retain行为默认是用copy的行为实现的,

因为block变量默认是声明为栈变量的,为了能够在block的声明域外使用,所以要把block拷贝(copy)到堆,所以说为了block属性声明和实际的操作一致,最好声明为copy。

2.__block关键字的使用

在Block的{}体内,是不可以对外面的变量进行更改的,使用__block就能改变block块中变量的值

3.__block和__weak有什么区别?

__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。 __weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。 __block对象可以在block中被重新赋值,__weak不可以。

相关文章

  • 关于block的浅层认识

    1.block要用copy修饰,还是用strong block本身是像对象一样可以retain,和release。...

  • 关于block的认识

    前言 block是一种比较特殊的数据类型。它可以保存一段代码,在合适的时候取出来调用。 block的声明 方式一 ...

  • Block的认识

    block的原理是怎样的?本质是什么?block是将函数及其执行上下文封装起来的对象或者说是结构体(3个关键字;继...

  • iOS面试之Block大全

    Block Block内容如下: 关于Block 截获变量 __block修饰符 Block的内存管理 Block...

  • iOS面试之Block模块

    Block Block内容如下: 关于Block 截获变量 __block修饰符 Block的内存管理 Block...

  • 关于艺术的浅层感悟

    艺术源于生活高于生活,大概说的是,艺术是据某样生活起源的有限或无限放大。只要抓住一个点,进行放大,大概就引起人们对...

  • 《高效阅读》输出2

    三类阅读方式: 兴趣阅读: 比如想要大致了解某个领域,认识某种事物。 浅层学习: 想要快速学习小技能,或者比较浅层...

  • “深度学习”的认识

    全视角学习的认识架构: 1、学生在学习过程中处理信息存在不同水平,呈现浅层和深层的差异。当学生使用浅层学习策略时,...

  • 详细的探讨一下Block(讨论篇、基础篇、实质篇)

    章节目录 关于Block的讨论篇 Block的基础篇 Block的实质篇 讨论篇: 为什么要看Block? 为了更...

  • oc Block

    标签:ios开发入门 对Block的经典认识 Block一点也不神秘

网友评论

      本文标题:关于block的浅层认识

      本文链接:https://www.haomeiwen.com/subject/ugvqgftx.html