setter和getter as objc_setAssociatedObjec

时间:2014-02-27 01:39:36

标签: objective-c associated-object

我不明白这种风格是什么意思,标准的setter / getter有什么好处吗?

- (UIViewController*)myVC {
return objc_getAssociatedObject(self, kMJPopupViewController);
}

- (void)setMyVC:(UIViewController *) myVC {
objc_setAssociatedObject(self, kMyVC, myVC, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

1 个答案:

答案 0 :(得分:1)

您只能在主@interface和类扩展(没有名称的类别)中拥有成员变量 - 返回“标准”属性的getter和setter。使用关联对象在类的类别中特别有用,因为它允许您假装类具有支持变量。

另请参阅libextobjc,其中有synthesizeAssociation() macro,这使得在类别中添加@properties变得微不足道。