2010-04-21 109 views

回答

3

两者都是有效的,即使通常建议将它放在属性上。

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

0

我这样做,并在.m文件中合成它。我不是100%,他们都是必不可少的,但它并没有受到伤害。

+1

给出细节(以及一些警告)只是不这样做... – Macmade 2010-04-21 14:34:33

+3

如何解释你的位置,Macmade?我看到在适用IBOutlet的ethos中有很多代码。 – 2010-04-21 15:55:38

5

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

有一个细微的差别。 IBOutlet属性通过访问方法,而IBOutlet ivars是直接ivar访问。

主要区别在于,如果保留了IBOutlet属性,则必须在-dealloc中发布它,而您通常不需要对IBOutlet ivar进行任何操作。 IBOutlet属性的好处是你可以获得所有属性的有用特征。

+0

保留部分不正确。 IBOutlet与它无关。只有使用'retain'限定符指定时,该属性才会保留。但是你也可以指定'assign'。然后,财产将不会被保留时设置! – Macmade 2010-04-21 14:26:23

+1

请注意该陈述中的“如果”。 – Giao 2010-04-21 14:28:41

+0

我的错误,对不起:) – Macmade 2010-04-21 14:31:33

1

都是有效的,我建议你使用@property