分類:
@interface UIView (Extension)
擴(kuò)展的方法和屬性
擴(kuò)展的屬性只有聲明 沒(méi)有set和get方法的實(shí)現(xiàn)
@end
類擴(kuò)展:
@interface ViewController ()
擴(kuò)展屬性/成員變量/方法
擴(kuò)展的屬性 有set和get方法的實(shí)現(xiàn)
@end
給分類添加屬性
1.@interface UIView (Extension)
//給分類添加一些屬性
@property(nonatomic,copy)NSString * name;
@end
2.static const void * lm_name = @"name";
3.//屬性的set和get方法的實(shí)現(xiàn)
#pragma mark - 字符串類型的動(dòng)態(tài)綁定
/*
1.id object給那個(gè)對(duì)象添加屬性
2.const void *key 屬性對(duì)應(yīng)的key
3.id value 設(shè)置屬性的值為value
4.OBJC_ASSOCIATION_ASSIGN assign
OBJC_ASSOCIATION_RETAIN_NONATOMIC retain
OBJC_ASSOCIATION_COPY_NONATOMIC copy
OBJC_ASSOCIATION_RETAIN
OBJC_ASSOCIATION_COPY
*/
//set方法的實(shí)現(xiàn)
- (void)setName:(NSString *)name{
objc_setAssociatedObject(self, lm_name, name, OBJC_ASSOCIATION_COPY_NONATOMIC);
}
//get方法的實(shí)現(xiàn)
- (NSString *)name{
return objc_getAssociatedObject(self,lm_name);
}