【发布时间】:2011-03-27 18:44:48
【问题描述】:
我有两个类,在 classA 中我创建了一个需要在 classB 中使用的变量, 我应该使用属性吗?
有没有人给我解释一下,如何将一个类中变量的StringValue设置为另一个类的文本字段?
谢谢
【问题讨论】:
标签: objective-c cocoa oop properties
我有两个类,在 classA 中我创建了一个需要在 classB 中使用的变量, 我应该使用属性吗?
有没有人给我解释一下,如何将一个类中变量的StringValue设置为另一个类的文本字段?
谢谢
【问题讨论】:
标签: objective-c cocoa oop properties
【讨论】:
简单的答案是肯定的,使用属性,这就是它们的用途:一种将对象状态暴露给其他对象的简单方法。
更长的答案是Objective-C 2.0 properties 只是Key-Value-Coding 和Key-Value-Observing (KVC/KVO) 概念的包装。
阅读这些文档非常值得,因为这些概念是 Cocoa 工作方式的基础,在您的学习过程中及早理解它们将为您在未来节省很多麻烦。
而且,由于您将传递对象引用,我不妨添加一个指向 Memory Management Programming Guide 的链接,这将帮助您正确地将正确的内存管理属性应用到您的 @property 声明中。
【讨论】:
foo.bar 直接向foo 发送bar 消息,就像[foo bar] 那样,而KVC 实际上会寻找 像bar 或_bar 这样的方法和仅在找到消息时才发送消息(如果找不到方法,它将查看bar 或_bar ivar)。因此,KVC 主要位于属性之上;属性不包装 KVC。
@synthesize _iVar = iVar;