1

IBOutletを宣言するのとそうでないのはどういう意味@interfaceですか?簡単なテストでは、割り当てはどちらの場合でも機能します。

@interface MyViewController : UIViewController <UITextFieldDelegate> {

    IBOutlet UITextField *textField;
    IBOutlet UILabel *label;
    NSString *string;
    /*IBOutlet*/ UILabel *total;//What does it mean to declare IBOutlet here?
}

@property (nonatomic, retain) IBOutlet UILabel *total;

.h

@synthesize total;
total.text = @"23";
4

3 に答える 3

3

この用語IBOutletは、Xcode の単なるプレースホルダーです。これにより、Xcode はインスタンス変数をグラフィック要素に接続するのに役立ちます。

これに対する私の以前の古い回答は、iOS Memory Management Issueです。

見てください。それは多くのものをカバーしています。

また、 Mike Ashによるnib-memory-managementを読むことをお勧めします。

それが役立つことを願っています。

于 2012-06-27T13:22:39.987 に答える
2

これは、ivar が IBOutlet になることを意味します。現在のプロパティが IBOutlet であるように。

ivar とプロパティに同じ名前を付けるという大きな間違いを犯しています。

total.textself.total.textあなたのファイルでは同じものではありません。

于 2012-06-27T13:18:53.657 に答える
2

IB に違いはありませんが、プロパティが配置されているUILabelと保持され、リリースする必要があります (ARC を使用していない場合)。を使用しない場合@property、ラベルはあなたが所有していないため、リリースする必要はありません。

于 2012-06-27T13:18:55.467 に答える