3

IBOutletを宣言する方法は2つあります。

  1. 変数としての@interfaceセクション:

    IBOutlet UIButton *exampleButton;
    
  2. 曲線ブラケットの下で、プロパティとしての.hファイルの@endの前:

    @property (nonatomic, retain) IBOutlet UIButton *exampleButton;
    

これら2つの方法の違いは何ですか?また、それぞれをどこで使用する必要がありますか?どの方法がより良いですか、そしてどのような場合ですか?

4

2 に答える 2

3

私の経験では、どちらも問題なく機能します。うまくいかないのは、インスタンス変数とプロパティ「IBOutlet」の両方を宣言することです。これは本当に混乱しているようです。何らかの理由でアウトレットへのパブリックアクセスを提供したくない場合は、それをインスタンス変数として宣言し、プロパティを作成しないようにすることができます。一方、ランタイムがインスタンス変数を合成するようになったため、多くの人がプロパティのみを宣言し、明示的なインスタンス変数の宣言をスキップしています。その場合、明らかにプロパティをIBOutletとして宣言します。

于 2011-07-13T15:20:07.233 に答える
0

@propertyを@synthesizeと組み合わせると、オブジェクトのgetterメソッドとsetterメソッドがセットアップされます。少なくともインターフェイスで定義する必要があります。また、そこからプロパティを作成する場合は、.mファイルも合成する必要があります。

于 2011-07-13T15:17:08.470 に答える