将IBOutlet放在实例变量声明或@property声明中?

时间:2010-04-21 14:08:03

标签: ios cocoa-touch iboutlet

iPad的Objective-C,你把IBOutlet放在哪里?在实例变量声明或@property声明中?有什么区别吗?

5 个答案:

答案 0 :(得分:5)

IBOutlet可以是ivars或财产声明的标记。

略有不同。 IBOutlet属性通过访问方法,而IBOutlet ivars是直接ivar访问。

主要区别在于,如果保留IBOutlet属性,则必须在-dealloc中释放它,而您通常不需要对IBOutlet ivar执行任何操作。 IBOutlet属性的优点是您可以获得属性的所有有用功能。

答案 1 :(得分:3)

两者都有效,即使通常建议将其放在财产上。

与属性的区别在于它可以从外部获得,并且使用了getter / setter方法。
这也允许属性限定符,如非原子和保留,通常为IBOutlets设置。

答案 2 :(得分:2)

mmalc(绝对是一个声誉良好的消息来源)说,目前的最佳做法是将其置于@property声明中。他在his answer to this quiestion

中提供了详细信息(以及一些注意事项)

答案 3 :(得分:1)

两者都有效我建议您使用@property

答案 4 :(得分:0)

我这两个,并在.m文件中合成它。我不是百分之百,他们都是必不可少的,但它并没有伤害。