美文网首页
变量限定符

变量限定符

作者: 兵哥哥k | 来源:发表于2019-01-12 17:48 被阅读0次

ARC 为变量供了四种生命周期限定符。

__strong

这是默认的限定符,无需显示引入。只要有强引用指向,对象就会长时间驻留在内存 中。可以将 __strong 理解为 retain 调用的 ARC 版本。

__weak

这表明引用不会保持被引用对象的存活。当没有强引用指向对象时,弱引用会被置为 nil。可将 __weak 看作是 assign 操作符的 ARC 版本,只是对象被回收时,__weak 具有 安全性——指针将自动被设置为 nil。

__unsafe_unretained

与 __weak 类似,只是当没有强引用指向对象时,__unsafe_unretained 不会被置为 nil。 可将其看作 assign 操作符的 ARC 版本。

__autoreleasing

__autoreleasing用于由引用使用id *传递的消息参数。它预期了autorelease方法会 在传递参数的方法中被调用。

Person * __strong p1 = [[Person alloc] init];// 创建对象后引用计数为 1,并且对象在 p1 引用期间不会被回收。
Person * __weak p2 = [[Person alloc] init];// 创建对象后引用计数为 0,对象会被立即释放,且 p2 将被设置为 nil。
Person * __unsafe_unretained p3 = [[Person alloc] init];// 创建对象后引用计数为 1,对象会被立即释放,但 p3 不会被设置为 nil。
Person * __autoreleasing p4 = [[Person alloc] init];// 创建对象后引用计数为 1,当方法返回时对象会被立即释放。

相关文章

  • 变量限定符和属性限定符

    目录 变量限定符 属性限定符 变量限定符 ARC 为变量提供了四种生命周期的限定符:1、_strong: 默认限定...

  • OpenGL ES 3.0编程指南:第五章. OpenGL ES

    19. Precision Qualifiers (精度限定符) 精度限定符可以指明shader中变量的精度,变量...

  • iOS中的限定符

    一、变量限定符 ARC为变量提供了四种生命周期限定符 __strong这是默认的限定符,无需显示引入。只要有强引用...

  • Variable Qualifiers

    变量限定符 对变量使用以下生命周期限定符: __strong 是默认限定符。只要有一个指向对象的强指针,对象就保持...

  • iOS视觉--GLSL简单了解

    基本数据类型基本数据类型 向量基本使用 矩阵基本使用 变量存储限定符变量存储限定符常用精度修饰符 重要‼️3个重要...

  • WEBGL编程指南之attribute,uniform,vary

    1.attibute变量的获取与传值 attribute为存储限定符,表示接下来的变量是一个attribute变量...

  • 变量限定符

    ARC 为变量供了四种生命周期限定符。 __strong 这是默认的限定符,无需显示引入。只要有强引用指向,对象就...

  • 3.着色语言

    3.着色语言OpenGL ES 3.0新增加功能非方矩阵,全整数支持,插值限定符号,统一变量块,局部限定符号,新的...

  • 附录(四)绘制纹理

    绘制纹理 精度限定符用于指定任何基于浮点或者整数变量的精度,关键字有高、中、低。 精度限定符,还有默认精度的概念,...

  • 着色器基础

    1. OpenGL着色器语言变量存储限定符 普通本地变量,外部不可以访问,外部不可见。const ...

网友评论

      本文标题:变量限定符

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