正如标题所述,为什么UIKit
代表(assign)
而不是(weak)
?
参见UIPopovercontroller.h
例如:
@property (nonatomic, assign) id <UIPopoverControllerDelegate> delegate;
据我所知,这对弱保留属性没有任何好处,但代表需要管理自己作为代表的生命周期存在很多问题。这是向后兼容性问题吗?
谢谢
因为大多数这些属性在 iOS SDK 支持弱属性之前就已经存在。该weak
属性仅在 iOS 5.0 及更高版本上受支持。
我不得不猜测,一旦 iOS 4.x 及更早版本成为历史,它们都将更新为weak
.
UIKit 仍然是在没有 ARC 的情况下构建的,因此没有一个 UIKit 类可以使用弱引用。出于这个原因,甚至像 UICollectionView 这样较新的类也将 assign 用于其委托属性。
永远不应保留代表。这是保持循环的简单途径。