【发布时间】:2012-02-21 23:45:29
【问题描述】:
如果我在标题中的括号中声明实例变量和对象,并在它们前面加上“IBOutlet”,我是否必须设置对象属性?
这是否也意味着它们是私有的?私有化对他们意味着什么???
【问题讨论】:
标签: iphone xcode properties header
如果我在标题中的括号中声明实例变量和对象,并在它们前面加上“IBOutlet”,我是否必须设置对象属性?
这是否也意味着它们是私有的?私有化对他们意味着什么???
【问题讨论】:
标签: iphone xcode properties header
如果您使用@property 和@synthesize,则不必声明变量。 .h 文件是一个类的 api,因此在其中声明任何内容都具有公开而不是私有的意图。
要声明 IBOutlet 私有,您需要创建一个类别,
@interface YourViewController ()
@property (nonatomic, retain) IBOutlet UILabel *label;
@end
以上代码将在 .m 文件中。
希望这会有所帮助
【讨论】:
不,不需要为 IBOutlets 设置属性,只需声明它们就足够了 例如:
IBOutlet UIbutton *btn;
如果您希望变量是私有的,那么您必须以这种形式声明它
@interface myclass:NSObject
{
@private
int var1;
}
类中声明为私有的实例变量只能由该类的实例访问。
【讨论】:
您只需将对象的变量声明为 IBOutlets(假设您使用 Interface Builder 连接它们)。除非您有理由将它们设为属性(即您希望其他对象可以访问该变量),否则它们不必是属性。外部对象无法访问私有属性。
【讨论】: