访问实例变量的语法? (目标-C)

2024-02-10

在 Objective-C 中访问实例变量的正确语法是什么?

假设我们有这个变量:

@interface thisInterface : UIViewController {
    NSMutableString *aString;
}

@property (nonatomic, retain) NSMutableString *aString;

并且它是合成的。

当我们想要访问它时,我们首先要分配并初始化它。使用 Objective-C 编程大约一个月了,我已经看到了两种不同形式的语法。我见过人们做的很简单aString = [[NSMutableString alloc] initWithString:@"hi"],他们在那里分配字符串;我也看到人们以self.aString然后他们继续初始化他们的ivar。我想我只是想找出初始化实例变量的最正确方法是什么,因为在前一个示例中,我收到了 EXC_BAD_ACCESS 错误。前置后self.然而,它并没有出现。

如果这是一个重复的问题,请原谅我,但在阅读了一些关于 SO 的帖子后,这让我很好奇。我正在尝试学习 Objective-C 的正确语法,因为我更喜欢正确而不是马虎。


如果您已申报财产并且@synthesize它在 .m 文件中,您只需这样设置:

self.aString = @"hi"; // or [[NSMutableString alloc] initWithString:@"hi"];

Using self.varName利用您的财产声明的实际作用 - 它处理新值的保留(因为您的财产具有retain属性),为您释放旧值等。

如果你只是这样做:

aString = someValue;

...您可能会泄漏其中的原始值aString,因为没有使用self.aString您是直接访问变量还是通过属性访问变量。

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

访问实例变量的语法? (目标-C) 的相关文章

随机推荐

  • 仅在设计时更新默认值

    我想仅在设计时更新链接到公共属性的私有变量的默认值 如果可能的话 TMyComp class TComponent private FColumnWidth Integer FColumnWidthDef Integer protected
  • .NET 中带有 Unity IOC 容器的 RabbitMQ

    我使用 Unity App Block 作为 WCF 项目服务层的 IOC 容器 使用 Unity WCF 库将其插入到每个 WCF 服务中 效果非常好 我最近将 RabbitMQ 引入了我的服务层 目前我正在使用 using 块来连接并添
  • 如何使用 SVN 使某些开发人员只显示某些文件夹

    我有一个包含一堆文件夹的存储库 我希望某些开发人员在检出存储库时只能获取其中两个或三个文件夹 如何使文件夹默认不显示 然后仅在我想要授予访问权限时添加它们 我使用 VisualSVN 作为 SVN 服务器 我所做的就是授予对顶层的读取访问权
  • 使用 RPostgreSQL 进行 UTF-8 / Unicode 文本编码

    我在直接链接到 PostgreSQL 数据库的 Windows 计算机上运行 R 我没有使用 RODBC 我的数据库采用 UTF 8 编码 由以下 R 命令确认 dbGetQuery con SHOW CLIENT ENCODING cli
  • 如何获取嵌入Flash影片的URL?

    今天我试图获取我的 Flash 电影所在的 URL I found 这里有一个类似的问题 https stackoverflow com questions 396412 how can my flash app determine its
  • Apache 在 URL 中隐藏查询字符串但保持 URL 正常工作

    我有两种类型的 URL 但它们可以在查询字符串之后包含任何内容 因为我们有 1000 个 URL 帖子 两者都有 id 我希望隐藏 删除它 但页面仍然加载 这些页面是 WordPress 中的自定义 slugs 我没有在 Apache 2
  • 将 boost::array 转换为带参数的函数 (const float (&arr)[12])

    我有一个boost array
  • R 中 PCA 的结果载荷

    在R中进行PCA时 p lt princomp iris 1 4 我通过以下两种方法得出不同Component的系数 IrisLoading lt p loadings 1 2 methods1 use the fist two Comp
  • 在大型数据集上使用 grep 或 fgrep 的循环速度非常慢

    我正在尝试做一些非常简单的事情 grep 从列表中 对目录中的文件进行精确匹配的字符串 try grep each line from the files for i in cat data datafile do LOOK echo i
  • 为什么根窗口小部件与窗口的大小不同?

    我正在尝试使用自定义小部件GridLayout 但结果总是在角落里出现一个很小的网格 而不是在整个窗口中扩展的网格 示例代码 import kivy kivy require 1 5 1 from kivy app import App f
  • 到大端还是小端? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ReactDOM.render 放在 React 中的什么位置

    这里是入门 https facebook github io react docs getting started htmlReact的例子 在例子中 下面的代码片段是单独的main js file ReactDOM render h1 H
  • 从委托访问列表视图 currentIndex

    我有一个QMLListView委托从另一个文件加载其组件的地方 单击委托项目时 我想更新ListView CurrentIndex and highlight所选项目 当我明确设置时它有效id of the ListView 但是因为我想使
  • Scala 2.13 视图与 LazyList

    我正在将一个项目从 Scala 2 12 1 迁移到 2 13 6 并发现SeqView flatMap现在返回一个View 其中没有distinct方法 因此 我有一段代码不再编译 val nodes debts view flatMap
  • 如何以正确的类型安全方式迭代记录键?

    让我们针对一些属性构建一个示例记录 type HumanProp weight height age type Human Record
  • 如何获取光标下的单词?

    假设有一个mousestop事件附加到整个文档 找出确切事件的最佳方法是什么word当鼠标停止移动时 在光标下方 如果有任何文本 我可以从事件处理程序获取底层 jQuery 元素 document elementFromPoint e cl
  • MATLAB:在子图中绘制/保存网格函数的 X-Y 视图

    正如标题所示 我试图将网格函数的 2 变量切片 例如 作为 jpg 保存为子图 我想使用 m 文件来执行此操作 因为我有很多要生成的图 我已经弄清楚如何在他们自己的图形上绘制视图 但我无法让它们正确地绘制为图形中的子图 为了说明我的意思 以
  • 绘制包含 80% (x, y) 点的圆

    我有一个二维数组 x y 的点 我想绘制一个包含该点 80 的圆 并且我想知道所得圆的半径 有没有办法用 python 来做到这一点 我一直在寻找一种方法来做到这一点 但没有成功 我很抱歉没有尝试 但我完全迷失了在不给圆半径的情况下取 80
  • 进程何时处理信号

    我想知道linux进程什么时候处理信号 假设进程已经安装了信号的信号处理程序 我想知道进程的正常执行流程何时会被中断并调用信号处理程序 根据http www tldp org LDP tlk ipc ipc html http www tl
  • 访问实例变量的语法? (目标-C)

    在 Objective C 中访问实例变量的正确语法是什么 假设我们有这个变量 interface thisInterface UIViewController NSMutableString aString property nonato