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造成内存泄漏。

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

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

(0)
上一篇 2021年12月7日 下午10:00
下一篇 2021年12月7日 下午10:00


相关推荐

  • HorizontalScrollView扩展总结

    HorizontalScrollView扩展总结ScrollView相信大家都已经比较熟悉了,它是支持垂直滚动的,在开发中经常使用到,与垂直滚动相对的就是水平滚动HorizontalScrollView,有时我们在进行页面切换的时候也会用到HorizontalScrollView。通过查看源码比较发现ScrollView和HorizontalScrollView有好多相同的方法。在说扩展之前,我先说一下HorizontalScrollVie

    2022年7月14日
    28
  • DotNetTextBox的使用问题

    DotNetTextBox的使用问题倒腾了一下 DotNetTextBo 文本编辑器 感觉功能很强大 网上说使用很是简单 但我配置一下遇到一些问题 在 vs2010 中 一切配置完毕 但是添加 html 样式的时候说 从客户端中检测到有潜在危险的 Request Form 值 解决办法 在页面设置 validateRequ false 后在 web config 中的 system web 节添加 system web

    2026年3月26日
    2
  • storm kafka_kafka poll timeout

    storm kafka_kafka poll timeouthttp://blog.csdn.net/liuxinghao/article/details/50553060

    2022年10月14日
    5
  • android 模拟器 电脑配置,手游安卓模拟器多开对电脑配置要求与占用浅谈

    android 模拟器 电脑配置,手游安卓模拟器多开对电脑配置要求与占用浅谈手机安卓模拟器多开对电脑配置要求与占用浅谈为大家分享一下模拟器多开对电脑配置硬件要求 现在就以我自己用的模拟器为模板来做参考一 我测试用的配置性能情况 跑分只作参考 我每次跑的分数有时高有时低都不一样 二 开模拟器对配置的要求与占用 1 对硬盘容量我从只有一个增加到四十个原始镜相一共占用 19G 平均一个原始镜相 500M 来算吧 再加上你需要安装游戏的大小 这个很好算我就不多说了 如图 2 对内存的占

    2026年3月26日
    2
  • vue父组件向子组件传值_vue什么是父子组件

    vue父组件向子组件传值_vue什么是父子组件组件化开发是目前前端开发必备的开发技能,组件化开发可以大大提高开发效率今天整理一下Vue的父子组件传值方式,方便还没有理解的朋友学习。1、父组件向子组件传值<!–父组件–><!–父组件调用子组件,看成是调用子组件函数,给子组件传值,就是给函数传参数–><template> <div> <!–传递动态值前面加个…

    2025年5月31日
    1
  • -bash: ls: command not found 或ifconfig ,su 等命令不能使用

    -bash: ls: command not found 或ifconfig ,su 等命令不能使用

    2021年7月18日
    59

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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