【问题标题】:Objective C - whats the advantage or rationale of properties? [duplicate]目标 C - 属性的优点或基本原理是什么? [复制]
【发布时间】:2013-05-14 23:15:49
【问题描述】:

我是目标 c 的新手

我一直在阅读有关属性和委托的内容

@synthesize something;
@property (nonatomic, retain) IBOutlet something<Something> Something;

当我的程序越来越大时,我发现自己根本没有使用它,一切都运行良好。

所以我的问题是:属性有什么用?使用 getter 和 setter 与普通变量相比有什么优势?

【问题讨论】:

  • 哇...对不起...
  • 我想问题应该是:为什么这么多人对所有东西都使用属性,包括不会在任何地方公开的内部变量,并且可以更快地访问,并且使用 ivars 可以减少输入! (很遗憾,答案是许多新的 Objective-C 程序员不理解 ivar 和属性之间的区别,并使用属性,因为点语法看起来像 Java 或 JavaScript...)
  • @Guillaume 我喜欢在 iVars 之前使用属性,因为我将来会证明我的代码。我可以为“zipCode”使用 ivar,但使用属性允许我使用自定义 getter/setter,而我的代码不知道其中的区别。

标签: objective-c properties


【解决方案1】:

属性带有getter和setter的普通变量,但提供了一种更短的方式来编写它们。

【讨论】:

  • 它们提供适当的内存管理,同时还有助于通过可预测的合规性使 KVC 和 KVO 易于实施。
  • 普通变量不会从垃圾收集器中清除吗?
  • @asdf 是的,尽管垃圾收集器在 Objective-C 环境中是一种罕见且已弃用的配置。您遇到的大多数代码要么是手动引用计数,要么是使用自动引用计数 (ARC)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-25
  • 2012-11-26
  • 2018-05-16
  • 1970-01-01
  • 1970-01-01
  • 2015-12-17
  • 2011-06-28
相关资源
最近更新 更多