0

「その他のソース」フォルダーに含まれる 2 つのカスタム値トランスフォーマーがあり、IB のテーブル列にバインドされているため、次のように初期化します。

@implementation MyDocument

- (id)init 
{
    self = [super init];
    if (self != nil) {
        // initialization code
        [self initialiseValueTransformers];
    }

return self;

}

- (void) initialiseValueTransformers {
    MyFirstTransformer *myFirstTransformer = [[[MyFirstTransformer alloc] init] autorelease];
    [NSValueTransformer setValueTransformer:myFirstTransformer forName:@"MyFirstTransformer"];

    MySecondTransformer *mySecondTransformer = [[[MySecondTransformer alloc] init] autorelease];
    [NSValueTransformer setValueTransformer:mySecondTransformer forName:@"MySecondTransformer"];
}

そして、これらは IB で、配列されたオブジェクト、モデル キー パス、値トランスフォーマーにバインドされた列を使用して正常に動作します。

私の質問は、 3 番目のトランスフォーマーを作成したばかりですが、それを初期化していないということです。ファイル MyThirdTransformer.h / .m. そして、それはまだIBで動作します..??

これはなぜですか? 最初の 2 つを初期化する必要がありますか?

4

1 に答える 1

1

NSValueTransformerIB で作成した Cocoa バインディングで使用する場合、独自のインスタンスを作成する必要はありません。

于 2012-03-21T11:39:14.540 に答える