-2

あるクラスにラベルがあり、表示されるテキストを変更したい場合、別のクラスからこれをどのように変更できますか?

4

2 に答える 2

1

Objective-cではproperties、インスタンス変数にアクセスするためのゲッターとセッターの作成を効果的に自動化する必要があります。

@interface MyClass
{
    UILabel *instanceLabel; //Not required, but I find it can make it clearer
}

@property (nonatomic, retain) UILabel *instanceLabel;

@end



@implementation MyClass

@synthesize instanceLabel; //Not required as of XCode 4.4
@end

次に、他のクラスから、ドット演算子を使用してこれらのプロパティにアクセスするという単純なケースです。

myClassInstance.instanceLabel.text = @"newText";

ドット演算子を使用する必要はありません。

[myClassInstance instanceVariable].text = @"newText";
于 2012-08-27T17:52:10.573 に答える
-1

通常、これには集合関数を使用します。

すなわち。擬似コード:

class YourClass 
{
    private var str;

    public YourClass(var str)
    {
        this.str = str;
    }

    public setString(var str)
    {
        this.str = str;
    }

}




class SecondClass 
{
    private final YourClass myInstance;

    public SecondClass(final YourClass myInstance)
    {
        this.myInstance = myInstance;
    }

    public performChange()
    {
        myInstance.setString("hello");
    }
}

次に、SecondClass :: PerformChange()を呼び出すと、「YourClassmyInstance」のインスタンス変数が「hello」に変更されます。

于 2012-08-27T17:48:03.190 に答える