Objective-C - 正确的授权方式?

时间:2011-11-14 01:49:41

标签: objective-c delegates properties

假设我有一个名为colorPicker的类,它包含一个委托来通知颜色变化。 此委托的属性是否需要设置为retainassign?为什么?

@interface ColorPicker : UIView

@property (nonatomic, retain) NSObject <ColorPickerDelegate> *delegate; 

@end

1 个答案:

答案 0 :(得分:4)

简短:使用assign来避免保留周期

  

保留对象会创建强引用,并且在释放所有强引用之前无法释放对象。如果两个对象彼此保留,则两个对象都不会被释放,因为它们之间的连接不能被破坏(source

长:Why are Objective-C delegates usually given the property assign instead of retain?