在@interface中声明IBOutlet是什么意思?

时间:2012-06-27 13:16:13

标签: iphone objective-c iboutlet

@interface vs中声明IBOutlet是什么意思?在一个简单的测试中,任务都适用。

@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";

3 个答案:

答案 0 :(得分:3)

术语IBOutlet只是Xcode的占位符。通过它,Xcode可以帮助您将实例变量连接到图形元素。

这是我之前的旧答案:iOS Memory Management Issue

看一看。它涵盖了很多东西。

我还建议您通过 Mike Ash 阅读nib-memory-management

希望有所帮助。

答案 1 :(得分:2)

这意味着ivar将成为IBOutlet。就像你现在的财产是IBOutlet一样。

你在为你的ivar和财产命名方面犯了一个更大的错误。

total.text和您文件中的self.total.text不是一回事。

答案 2 :(得分:2)

IB没有区别,但是,在您的财产到位后,您的UILabel会被保留,您必须将其释放(如果您不使用ARC)。如果您不使用@property,则该标签不属于您,您无需将其发布。