static NSString *nameKey = @“nameKey”; //那么的key
@interface SJStartAndGuideVc (QZV5)
#pragma mark 分类里面s使用实例变量 要添加setter getter 方法
@property(strong, nonatomic)AWVideoViewModelV5 *videoModel;
@end
@implementation SJStartAndGuideVc (QZV5)
/**
setter方法
*/
-(void)setVideoModel:(AWVideoViewModelV5 *)videoModel
{
objc_setAssociatedObject(self, &nameKey, videoModel, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
/**
getter方法
*/
-(AWVideoViewModelV5 *)videoModel
{
return objc_getAssociatedObject(self, &nameKey);
}
注:
typedef OBJC_ENUM(uintptr_t, objc_AssociationPolicy) {
OBJC_ASSOCIATION_ASSIGN = 0, //关联对象的属性是弱引用
OBJC_ASSOCIATION_RETAIN_NONATOMIC = 1, //关联对象的属性是强引用并且关联对象不使用原子性
OBJC_ASSOCIATION_COPY_NONATOMIC = 3, //关联对象的属性是copy并且关联对象不使用原子性
OBJC_ASSOCIATION_RETAIN = 01401, //关联对象的属性是copy并且关联对象使用原子性
OBJC_ASSOCIATION_COPY = 01403 //关联对象的属性是copy并且关联对象使用原子性
};