0
//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 を設定できることです。既に設定されている場合は呼び出すことができません。クラスに既に設定されている値を返す方法、または達成しようとしていることにアプローチする別の方法はありますか。

4

1 に答える 1

1

あなたが何を達成しようとしているのかはわかりませんが、クラスメソッドにはあなたが信じているように見える意味でのインスタンスがありません。あるインスタンスから別のインスタンスに変数をコピーするクラスメソッドは、引数として2つのインスタンスを取る必要があります。コードでは、グローバル変数NSString *secondLabelTextとして宣言しているため、アクセスできます。紛らわしいことに同じ名前を付けた以外は、クラスの各インスタンスが持つプロパティとはまったく関係ありません。

于 2012-11-08T18:23:09.713 に答える