0

私はドキュメントベースのCocoaアプリを持っています。実行時に、を呼び出してバンドルから追加のペン先をロードします[NSBundle loadNibNamed:@"inspectorNIB" owner:self](ここselfで、はですNSDocument)。

不思議なことに、バンドルのロードが成功している間、NSDocument'sawakeFromNibメソッドが再度呼び出され、不要な2番目の初期化が発生します。これは予想される動作ですか?どうすれば抑制できますか?

4

1 に答える 1

3

はい、-awakeFromNibオブジェクトが nib で参照されている場合、読み込まれた nib ごとに呼び出されます。セットアップを 2 回行うのを避けたい場合は、BOOLインスタンス変数を設定してチェックを行うことができます。

if (!alreadyDidNibLoadStuff) {
    // do nib load stuff
    alreadyDidNibLoadStuff = YES;
}
于 2011-01-23T15:32:07.997 に答える