分类:
@interface UIView (Extension)
扩展的方法和属性
扩展的属性只有声明 没有set和get方法的实现
@end
类扩展:
@interface ViewController ()
扩展属性/成员变量/方法
扩展的属性 有set和get方法的实现
@end
给分类添加属性
1.@interface UIView (Extension)
//给分类添加一些属性
@property(nonatomic,copy)NSString * name;
@end
2.static const void * lm_name = @"name";
3.//属性的set和get方法的实现
#pragma mark - 字符串类型的动态绑定
/*
1.id object给那个对象添加属性
2.const void *key 属性对应的key
3.id value 设置属性的值为value
4.OBJC_ASSOCIATION_ASSIGN assign
OBJC_ASSOCIATION_RETAIN_NONATOMIC retain
OBJC_ASSOCIATION_COPY_NONATOMIC copy
OBJC_ASSOCIATION_RETAIN
OBJC_ASSOCIATION_COPY
*/
//set方法的实现
- (void)setName:(NSString *)name{
objc_setAssociatedObject(self, lm_name, name, OBJC_ASSOCIATION_COPY_NONATOMIC);
}
//get方法的实现
- (NSString *)name{
return objc_getAssociatedObject(self,lm_name);
}