0

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

4

5 回答 5

5

IBOutlet 可以是 ivars 上的标记或属性声明。

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

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

于 2010-04-21T14:24:06.187 回答
3

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

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

于 2010-04-21T14:16:26.420 回答
2

mmalc(他绝对是一个有信誉的消息来源)说当前的最佳实践是把它放在@property 声明中。他在回答这个问题时提供了细节(以及一些警告)

于 2010-04-21T20:33:44.813 回答
1

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

于 2010-04-21T15:47:17.667 回答
0

我两者都做,并在 .m 文件中合成它。我不是 100% 认为它们都是必不可少的,但这并没有什么坏处。

于 2010-04-21T14:17:22.313 回答