正如标题所述,为什么UIKit
代表(assign)
代替(weak)
?
例如,请参阅UIPopovercontroller.h
:
@property (nonatomic, assign) id <UIPopoverControllerDelegate> delegate;
据我所知,这对于弱保留的属性没有任何好处,但是代理需要管理它作为代表的生命周期的许多问题。这是一个向后兼容性问题吗?
由于
答案 0 :(得分:10)
因为在iOS SDK支持的弱属性之前存在大多数这些属性。仅在iOS 5.0及更高版本上支持weak
属性。
我不得不猜测,一旦iOS 4.x及更早版本成为历史记录,它们都将更新为weak
。
答案 1 :(得分:2)
UIKit仍然没有ARC构建,因此UIKit类都不能使用弱引用。因此,即使像UICollectionView这样的新类也会为其委托属性使用assign。
答案 2 :(得分:-3)
永远不应保留代表。这是保留周期的简单途径。