setting new properties in category interface/implementation

后端 未结 7 1468
醉梦人生
醉梦人生 2020-12-03 03:42

Ok, so I have this, but it wont work:

@interface UILabel (touches)

@property (nonatomic) BOOL isMethodStep;

@end


@implementation UILabel (touches)

-(BOO         


        
7条回答
  •  渐次进展
    2020-12-03 04:22

    You could inject an associated object during runtime.

    #import 
    
    @interface UIView (Private)
    
    @property (nonatomic, assign) CGPoint initialTouchPoint;
    @property (nonatomic, strong) UIWindow *alertWindow;
    
    @end
    
    @implementation UIView (Private)
    
    @dynamic initialTouchPoint, alertWindow;
    
    - (CGPoint)initialTouchPoint {
        return CGPointFromString(objc_getAssociatedObject(self, @selector(initialTouchPoint)));
    }
    
    - (void)setInitialTouchPoint:(CGPoint)initialTouchPoint {
        objc_setAssociatedObject(self, @selector(initialTouchPoint), NSStringFromCGPoint(initialTouchPoint), OBJC_ASSOCIATION_RETAIN);
    }
    
    - (void)setAlertWindow:(UIWindow *)alertWindow {
        objc_setAssociatedObject(self, @selector(alertWindow), alertWindow, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
    }
    
    - (UIWindow *)alertWindow {
        return objc_getAssociatedObject(self, @selector(alertWindow));
    }
    
    @end
    

提交回复
热议问题