0

IB を使用していくつかのUIViewオブジェクトを作成IBOutletし、自分のコードにリンクしていました。
以下のいくつかのサンプル:

1.  IBOutlet  UIView *view1;

2.  IBOutlet  UIView *view1;  @property(retain)  UIView *view1;

3.  UIView *view1 ;  @property(retain) IBOutlet UIView *view1;

違いは何ですか?release手動で行う必要がありますか?
ご協力いただきありがとうございます。

4

4 に答える 4

1

手動で削除する必要があります....

3番目のステートメントは正しく機能します... Xcodeは、クラス宣言内ではなく、プロパティ宣言からnibコントロールを識別します。

(サイドクラスで)

IBOutlet  UIView *view1;

クラス内でのみ宣言されているため、インターフェイス ビルダーはおそらく IBoutlet として認識しません。(クラス変数は保護されています)

IBOutlet  UIView *view1;  @property(retain)  UIView *view1;

クラス内でのみ宣言されているため、インターフェイス ビルダーはおそらく IBoutlet として認識しません。(クラス変数は保護されています)

3.  UIView *view1 ;  @property(retain) IBOutlet UIView *view1;

正しい方法で Interface builder が認識します。Interfaceビルダーから参照アウトレットを接続すると表示されます

于 2011-03-07T06:37:30.323 に答える
0

こちらをご覧ください

于 2011-03-07T06:36:41.627 に答える
0

すべての IBOutlets を手動で解放する必要があります。

deallocで nil に設定しunloadます。

于 2011-03-07T06:36:47.353 に答える
-1

こんにちは、dealloc メソッドで手動で解放できます。

- (void)dealloc {
  [view1 release];
  [view2 release];
  [super dealloc];

}
于 2011-03-07T06:38:12.967 に答える