原子属性的 setter 和 getter

2024-01-30

对于以下属性值,自动生成的 getter 和 setter 是什么样的?

... in .h
@interface MyClass : NSObject {
@private
    NSString *_value;
}

@property(retain) NSString *value;

... in .m
@synthesize value = _value;

如果我将属性更改为

@property(retain, readonly) NSString *value;

具体来说,我对故事的原子部分感兴趣,加上保留,如果可能的话,详细的代码会更清楚地了解幕后到底发生了什么。


它们看起来像这样:

- (NSString*) value 
{
    @synchronized(self) {
        return [[_value retain] autorelease];
    }
}

- (void) setValue:(NSString*)aValue
{
    @synchronized(self) {
        [aValue retain];
        [_value release];
        _value = aValue;
    }
}

如果将该属性更改为只读,则不会生成 setter。吸气剂将是相同的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

原子属性的 setter 和 getter 的相关文章

随机推荐

  • 如何安装旧版本的 postgresql 和 postgis?

    我是 Linux 新手 我发现安装旧版本的 postgresql 以及 postgis 真的很困难 我已经卸载了在 aptidude 中可以找到的连接到 postgresql 的所有内容 由于只能通过 apt get install 获得最
  • 像 .map() 这样的高阶函数在 JavaScript 内部是如何工作的?

    现在每个人都尝试使用这些高阶函数 https en wikipedia org wiki Higher order function通过编写更少的代码获得有希望的结果 但我想知道这些函数内部是如何工作的 假设我写了类似的东西 var num
  • LibGDX 网格高度图法线和灯光

    我正在尝试让网格法线和灯光在 LibGDX 项目中工作 我已经有了从高度图纹理像素生成的纹理网格 问题是我无法正确点亮法线 另外 我不能 100 确定我在 TerrainChunk 类中正确设置了法线顶点 这是主类代码 package co
  • staggerChildren 与成帧器运动

    我在使成帧器运动 staggerChildren 过渡到处理简单的项目列表时遇到一些问题 它基本上允许子组件的动画交错 我为父容器和子容器设置了这样的动画属性 const container hidden opacity 0 show op
  • ArrayCollection:以表单形式检索集合

    我使用 Symfony2 制作了一个 Web 应用程序 其中用户与实体 Mission 具有数组关联 ManytoMany 用户可以通过表单上传实体 product 表单传递的数据之一是与用户关联的任务 每个用户都有不止一个任务 因此 当他
  • 页脚在底部有CSS网格吗?想不通吗?

    我看过其他教程 了解如何在内容很少时使用 css 网格使页脚粘在底部 但我无法弄清楚 如果你能帮忙 那就太好了 我正在学习 css grid 我花了几天时间断断续续地试图弄清楚它 margin 0 padding 0 color fffff
  • 错误:“文件‘/MasterPages/MainMaster.master’不存在。” (是的,这个文件确实存在!)

    我刚买了一台新的台式电脑 操作系统为 Windows 7 Pro 我在这台新计算机上安装了 Visual Studio 2008 并尝试打开以前存在的 ASP NET 3 5 解决方案 该解决方案在我以前的计算机上显示得非常好 以前的计算机
  • Chrome.system.cpu API 使用情况

    是否可以使用 chrome system cpu api 获取当前 CPU 负载 我特别不知道如何将返回的数字转换为总电流负载的百分比 我发现了这一点 但不太确定如何实现 调用者可以通过进行两次调用 减去时间并除以总时间差来计算负载分数 h
  • 减小折叠菜单的宽度

    在下面的代码中 当单击折叠菜单时 会提供一个与页面全宽的下拉菜单 div class row div class col sm 8 div class navbar header div div div
  • Angular 2 双向数据绑定不起作用

    我在 Angular 2 中获取自定义双向数据绑定时遇到问题 文档表明盒子模型中的香蕉 只是语法糖 但是在我的示例中 这种方式不起作用 而且时间更长方法的工作原理
  • ggplot 中轴/变量标签的键值映射

    我经常使用具有 R 友好 程序员友好 列名称的数据框 通常没有空格和 或缩写 在进行分析时懒于输入全名 例如 ir lt data frame sp iris Species sep len iris Sepal Length sep wi
  • Long 不能取消引用

    我几乎做了一切来解决 长不能取消引用 这个恼人的问题 但一切都解决了 因此 有人可以帮助我吗 问题是当我检查程序是否超时时if System currentTimeMillis longValue finish 比较不起作用 public
  • Sql ServerPreparedStatement为SQL“in(?)”子句设置参数

    我有一个sql看起来像这样 SELECT FROM T TABLE WHERE ID IN 我想设置参数IN via PrepareStatement 我认为所需的方法如下所示 prepareStatement setList 1 Arra
  • 为什么不是 scanf("%*[^\n]\n");和 scanf("%*[^\n]%*c");清除悬挂的换行符?

    拨打电话后scanf d variable 我们留下了一个换行符挂在stdin 应在调用之前清除fgets 或者我们最终给它提供一个换行符并使其过早返回 我找到了建议使用的答案scanf n c 第一次致电后scanf放弃换行符和其他建议使
  • oracle查询比较表中具有相同id的所有行

    需要一个 sql 查询来生成具有相同 id 的状态为完整的记录 例如 mytable是包含各种记录的表名 我们需要找到同一 ID 的所有状态为完整的 ID id status 12 complete 12 required 12 activ
  • Google 网站管理员工具 API:通过 OAUTH2 下载查询

    我正在尝试使用 Google 的网站管理员工具 API 下载最近搜索查询的 CSV 文件 我知道如何使用他们的 Python 示例来做到这一点http googlewebmastercentral blogspot com 2011 12
  • 如何向 .DecimalPad iOS 键盘添加减号?

    如何向 DecimalPad 类型 iOS 键盘添加减号 就像下面链接中的应用程序一样 如果我错了 请纠正我 但这对我来说似乎不是一个自定义键盘 它看起来像是苹果公司的默认十进制键盘 带减号的十进制键盘 https i stack imgu
  • Apache 基准 HTTPS 失败

    我在 Ubuntu 虚拟机中使用 Apache 2 4 2 我用它来加载测试 将请求发送到某个 HTTPS url 失败的请求数为零 但我的请求都无法真正得到处理 已经在数据库中查找 使用相同的url 通过浏览器调用它就可以了 数据库已更新
  • Python 中按年月分组并删除所有 NaN 的列

    基于来自的输出数据帧这个链接 https stackoverflow com questions 69937232 groupby year month and find top n smallest values columns in p
  • 原子属性的 setter 和 getter

    对于以下属性值 自动生成的 getter 和 setter 是什么样的 in h interface MyClass NSObject private NSString value property retain NSString valu