在类方法中调用实例变量

时间:2012-11-08 18:17:07

标签: objective-c class

//SecondPage.h
@property (nonatomic, copy) NSString *secondLabelText;
+(SecondPage *) newAlloc;
+(id) totalOpen;
+(void)setSecondLabelText;

//SecondPage.h
@synthesize secondLabelText;   //DOESNT WORK.
NSString* secondLabelText;   //DOES WORK. 


+(void) setSecondLabelText
{
    secondLabelText = @"TEST";
}

+(id) totalOpen
{
    [self setSecondLabelText];
    return secondLabelText;
}

我希望能够使用类方法将类的变量“复制”到另一个类中。在这个例子中我使用[SecondPage totalOpen],但唯一的问题是我只能在类方法setSecondLabelText中设置secondLabelText,如果已经设置了我就不能调用它。有没有办法可以为一个类返回已经设置的值,或者采用不同的方式来实现我想要实现的目标。

1 个答案:

答案 0 :(得分:1)

我不清楚你想要实现什么,但是类方法没有你似乎相信的意义上的实例。将变量从一个实例复制到另一个实例的类方法必须将两个实例作为参数。在您的代码中,您可以访问NSString *secondLabelText,因为您已将其声明为全局变量。它与该属性完全无关,该类的每个实例都具有除了令人困惑的同名之外的其他实例。