【问题标题】:access a variable of another class via a property通过属性访问另一个类的变量
【发布时间】:2011-03-27 18:44:48
【问题描述】:

我有两个类,在 classA 中我创建了一个需要在 classB 中使用的变量, 我应该使用属性吗?

有没有人给我解释一下,如何将一个类中变量的StringValue设置为另一个类的文本字段?

谢谢

【问题讨论】:

标签: objective-c cocoa oop properties


【解决方案1】:

【讨论】:

  • 链接断开?这现在只提供托管。
  • 很抱歉听到这个消息。如果您愿意,请随意搜索网络并取消断开链接。反正我最初是通过网络搜索找到的
【解决方案2】:

简单的答案是肯定的,使用属性,这就是它们的用途:一种将对象状态暴露给其他对象的简单方法。

更长的答案是Objective-C 2.0 properties 只是Key-Value-Coding 和Key-Value-Observing (KVC/KVO) 概念的包装。

阅读这些文档非常值得,因为这些概念是 Cocoa 工作方式的基础,在您的学习过程中及早理解它们将为您在未来节省很多麻烦。

而且,由于您将传递对象引用,我不妨添加一个指向 Memory Management Programming Guide 的链接,这将帮助您正确地将正确的内存管理属性应用到您的 @property 声明中。

【讨论】:

  • 属性只是用于声明访问器方法和(在现代运行时)实例变量的正式语法。 KVC 是访问此类属性的一种方式,无论它是否已正式声明。区别在于foo.bar 直接向foo 发送bar 消息,就像[foo bar] 那样,而KVC 实际上会寻找 像bar 或_bar 这样的方法和仅在找到消息时才发送消息(如果找不到方法,它将查看bar 或_bar ivar)。因此,KVC 主要位于属性之上;属性不包装 KVC。
  • 我想说属性简化了创建符合 KVC 的访问器,甚至可以简化到 @synthesize _iVar = iVar;
  • 有没有人给我解释一下如何将一个类的变量的StringValue设置为另一个类的文本字段?
猜你喜欢
  • 2015-04-04
  • 2012-02-04
  • 2017-10-01
  • 1970-01-01
  • 2012-12-13
  • 2011-07-20
  • 1970-01-01
  • 1970-01-01
  • 2010-09-21
相关资源
最近更新 更多