2011-02-25 15 views

答えて

2

は、私はあなたがバッキングペン先なしIBOutletやIBActionを接続することを計画しているかどうかはわかりませんが、あなたは手動で必要なビットを作成することができます。

IBActionsは、セレクタ契約を実装に飾るインターフェースビルダーの方法です。手動で次のコード例でセレクタにバインドされたメソッドを作成することができます。

[Export ("someMethod:")] 
public void SomeMethod (int arg) { 
} 

IBOutletsはインスタンス変数(アイバーズ)を飾るだけのインターフェースビルダーの方法です。 Ivarsはプロパティとしてモノタッチコードジェネレータによって公開されているため、ネイティブプロキシバッキングストアを遅延クエリでき、すべての移行ポイントで値をマーシャリングする必要はありません。手動で次のコード例でプロキシクラスのインスタンス変数を作成することができます:あなたがどのような状態をぶら下げる場合

private NSObject __mt_varname; 
[Connect("varname")] 
private NSObject varname { 
    get { 
     this.__mt_varname = ((NSObject) (this.GetNativeField("varname"))); 
      return this.__mt_varname; 
    } 
    set { 
      this.__mt_varname = value; 
     this.SetNativeField("varname", value); 
    } 
} 

[Connect("varname")] 
private NSObject varname { 
    get { 
     return ((NSObject) (this.GetNativeField("varname"))); 
    } 
    set { 
     this.SetNativeField("varname", value); 
    } 
} 

賢明な読者はMTコードジェネレータはわずかに異なるコードを生成することがわかりますネイティブフィールドに格納しているオブジェクトをオフにする場合は、このコンストラクタも使用する必要があります。そのため、ガベージコレクタは参照を認識します。

関連する問題