为什么UIKit代表“分配”ed而不是“弱”?

时间:2012-11-13 23:20:41

标签: ios xcode cocoa uikit

正如标题所述,为什么UIKit代表(assign)代替(weak)

例如,请参阅UIPopovercontroller.h

@property (nonatomic, assign) id <UIPopoverControllerDelegate> delegate;

据我所知,这对于弱保留的属性没有任何好处,但是代理需要管理它作为代表的生命周期的许多问题。这是一个向后兼容性问题吗?

由于

3 个答案:

答案 0 :(得分:10)

因为在iOS SDK支持的弱属性之前存在大多数这些属性。仅在iOS 5.0及更高版本上支持weak属性。

我不得不猜测,一旦iOS 4.x及更早版本成为历史记录,它们都将更新为weak

答案 1 :(得分:2)

UIKit仍然没有ARC构建,因此UIKit类都不能使用弱引用。因此,即使像UICollectionView这样的新类也会为其委托属性使用assign。

答案 2 :(得分:-3)

永远不应保留代表。这是保留周期的简单途径。