2012-11-13 27 views
6

正如標題所述,爲什麼UIKit代表(assign)而不是(weak)爲什麼UIKit代表「分配」而不是「弱」?

例如見UIPopovercontroller.h

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

至於我可以告訴這個規定沒有任何好處在弱保留財產,但有很多問題,其中的代表需要管理它自己的一生作爲代表。這是一個向後兼容性問題?

謝謝

回答

10

由於大多數這些屬性存在於iOS SDK支持的弱屬性之前。 weak屬性僅在iOS 5.0及更高版本中受支持。

我不得不猜測,一旦iOS 4.x和更早版本是歷史記錄,它們將全部更新到weak

+0

當類被解除分配時,'弱'指針也被設置爲'nil',這是'assign'唯一的實際區別' – jere

+2

@jere更正確地說,弱指針被設置爲'nil'當它們引用的對象被釋放時。編輯:看起來像你編輯你的評論。 – rmaddy

+0

我希望我們在iOS 8上有最好的運氣...... –

-3

代表不應該被保留。這是一個保留週期的簡單途徑。

+2

問題是關於弱與分配。 – rmaddy

+0

沒有用,但是爲true) – Tim

2

UIKit仍然沒有ARC構建,因此沒有一個UIKit類可以使用弱引用。即使是像UICollectionView這樣的新類也會因爲這個原因而爲它們的委託屬性賦值。

相關問題