有没有办法在Objective-C中为类变量合成setter / getter?

时间:2009-09-08 01:41:49

标签: iphone objective-c class

我发现自己声明了一堆类变量,为每个变量编写简单的get / set方法真的很累。那么,问题是如何在objective-c中合成类变量的setter / getter?

4 个答案:

答案 0 :(得分:4)

通常,当您对一组要全局访问的相关变量进行分组时,您可以创建所谓的Singleton:

What should my Objective-C singleton look like?

这意味着您有一个类级别方法可以返回一个共享实例 - 因此您可以进行如下调用:

[MyClass sharedInstance].myProperty

由于您存储的值是真正的类实例变量,因此您可以使用普通属性,但所有类都将使用相同的共享数据。

请注意,有些人不喜欢单身人士的使用,你可能想读一些关于这种做法的警告:

Singleton: How should it be used

但是,既然你已经开始使用iPhone开发中的一个固有单例(应用程序委托,任何人都可以随时访问),那么轻松使用该技术就不会受到伤害。请注意,不是创建Singleton类,而是让应用程序委托创建变量存储类的单个实例,并让每个人通过委托访问它...

答案 1 :(得分:1)

这样的内容在你的标题中,在界面之后:

@property (retain) NSString* caption;

然后在实现中进行了immediatley:

@synthesize caption;

查看本教程以获取更多详细信息:http://www.cocoadevcentral.com/d/learn_objectivec/

答案 2 :(得分:0)

你能不只是编辑宏或什么?

答案 3 :(得分:0)

属性不需要引用ivar。如果你真的想要,你可以让一个动态属性返回一个静态变量。

只需使用@dynamic并实现getter和setter来引用实现文件中的静态变量。