Object-c @property的用法

Object-c @property的用法

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

property是一种代码生成机制,可以生成不同类型的getter/setter函数,特别是假设你想要用点(.)操作符号来存取变量的话,你就能必须使用property。

 

怎样使用?

使用方法如:@property (attribute1,attribute2) float value;

 

这些attribute包含:

readonly-仅仅读,仅仅能读取而不能设定值(不能用setXXXX的函式)。

readwrite-可读可写(默认)。

assign-在设值时替换新旧变量(默认)。

retain-在设值时retain新的变量,release旧变量。

copy-在设值时copy一份新变量,release旧变量。

nonatomic-默认為atomic。

strong – 在引用计数环境下,默觉得strong,与retain作用同样;

从5.0系统后引入了weak,作用与assign相似,只是当所指向对象引用为0时,自己主动置为nil。

前两个仅仅是简单的设定变量的可读写性。

 

assign仅仅是简单的替换变量,通常运用在标量类型上,比如:NSInterger和CGRect,

或者(在引用计数环境)为那些你不拥有的对象,比如:delegates。

在垃圾收集环境下retain 和 assign实际上是同样的。

它的产生的setter代码內容类似:

– (void)setValue:(float)newValue {

value = newValue;

}

 

另一点很要注意的就是,在使用property时一定要在前面带上self(如:self.xxx),假设你不这样做,easy造成内存泄漏。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/118313.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 安卓网络接口_ap接入点模式

    安卓网络接口_ap接入点模式Android的无线接口层(RIL)提供了Android电话服务(android.telephony)与无线电硬件之间的抽象层。RIL是通讯无关的,提供基于GSM的网络支持。       下图显示了RIL位于Android电话系统架构中的位置:  实线框表示Android部分,虚线框表示合作伙伴所专用的部分RIL包含两个基本部件:       RIL守护进程

  • java全局变量和局部变量的区别「建议收藏」

    java全局变量和局部变量的区别「建议收藏」java全局变量和局部变量全局变量全局变量又称实例变量,属性,成员变量。位置定义在类中,属于类中的一个成员作用范围因为全局变量是定义在类中的,所以可以使用四种访问权限控制修饰符修饰,但是不论使用哪种,全局变量在当前类中的每一个方法中都可以被访问到,(static修饰的静态方法只能访问static修饰的属性)默认值全局变量有默认值基本类型的实例变量:整型 :默认值为0浮点型 :默认值为0.0布尔型 :默认值为false字符型 :默认值为0或者‘\u0000’引用类型的实

  • 小白能读懂的 《手把手教你学DSP(TMS320X281X)》第六章 使用c语言操作dsp寄存器(以SCI为例进行说明))

    小白能读懂的 《手把手教你学DSP(TMS320X281X)》第六章 使用c语言操作dsp寄存器(以SCI为例进行说明))1c语言与汇编语言器一些对时间要求特别高的时候需要嵌入一些汇编语言,其他时候使用c语言通过位定义和寄存器结构体的方式来实现对dsp寄存器进行访问和控制。2配置SCI寄存器2.1了解SCI寄存器前面我们讲过2812有两个SCI寄存器(SCIA和SCIB),可以做成两个串口(2RS232/2RS484/RS232+RS485)首先我们查看寄存器的寄存器文件以SCIA为例,第一列表示他有13个寄存器可以操作,并且都以SCI开头进行命名;第二列表示地址,即该寄存器所在的位置;后面

  • python中保留小数位数_python取小数部分

    python中保留小数位数_python取小数部分一.format方法a=1.23455print(format(a,’.2f’))print(format(a,’.4f’))符合四舍五入print(‘{:.2f}{:.3f}’.format(1.23455,1.23455))使用{}作为占位符,可以同时操作多个数字二.’%2f’%f方法a=1.23455print(‘%.4f’%a)符合四舍五入三.round()方法a=1.23455print(round(a,2))print(round(a,4))

  • gridlayout布局

    gridlayout布局浅谈android4.0开发之GridLayout布局分类: Android应用开发技巧2012-03-1123:51 3646人阅读 评论(1) 收藏 举报androidlayoutbuttonencoding框架编程作者:李响         本文重点讲述了自android4.0版本后新增的GridLayout网格布局的一些基本

  • qt的内存映射

    qt的内存映射uchar*QFileDevice::map(qint64offset,qint64size,QFileDevice::MemoryMapFlagsflags=NoOptions)从偏移量开始将文件的大小字节映射到内存中。应该打开一个文件以使映射成功,但在映射内存之后,该文件不需要保持打开状态。当QFile被销毁或用这个对象打开一个新文件时,任何未被映射的映射都将被自动取消映射。映射将具有与文件相同的打开模式(读和/或写),除非使用maprivateOption,在这种情况下,始终可以

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号