Tag: 关联对象

如何在Swift中存储属性,就像Objective-C一样?

我将Objective-C的应用程序切换到Swift,我有一些存储属性的类别,例如: @interface UIView (MyCategory) – (void)alignToView:(UIView *)view alignment:(UIViewRelativeAlignment)alignment; – (UIView *)clone; @property (strong) PFObject *xo; @property (nonatomic) BOOL isAnimating; @end 由于Swift扩展不接受像这样的存储属性,我不知道如何维护与Objc代码相同的结构。 存储的属性对我的应用程序非常重要,我相信苹果公司必须在Swift中创build一些解决scheme。 正如jou所说,我所寻找的实际上是使用关联的对象,所以我做了(在另一个上下文中): import Foundation import QuartzCore import ObjectiveC extension CALayer { var shapeLayer: CAShapeLayer? { get { return objc_getAssociatedObject(self, "shapeLayer") as? CAShapeLayer } set(newValue) { objc_setAssociatedObject(self, "shapeLayer", newValue, UInt(OBJC_ASSOCIATION_RETAIN)) } } var initialPath: CGPathRef! […]