6

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

参见UIPopovercontroller.h例如:

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

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

谢谢

4

3 回答 3

10

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

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

于 2012-11-13T23:27:16.057 回答
2

UIKit 仍然是在没有 ARC 的情况下构建的,因此没有一个 UIKit 类可以使用弱引用。出于这个原因,甚至像 UICollectionView 这样较新的类也将 assign 用于其委托属性。

于 2015-03-04T17:33:56.993 回答
-3

永远不应保留代表。这是保持循环的简单途径。

于 2012-11-13T23:26:49.357 回答