版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Emperor_huanzi/article/details/80463191
一、给类目加属性时
#import <UIKit/UIKit.h>
@interface UITapGestureRecognizer (NSString)
@property(nonatomic,strong)NSString *dataStr;
@end
#import "UITapGestureRecognizer+NSString.h"
#import <objc/runtime.h>
static char * personNameKey = "personNameKey";
@implementation UITapGestureRecognizer (NSString)
- (void)setDataStr:(NSString *)dataStr{
// objc_setAssociatedObject(self, personNameKey, dataStr, OBJC_ASSOCIATION_COPY_NONATOMIC);
objc_setAssociatedObject(self, @selector(dataStr), dataStr, OBJC_ASSOCIATION_COPY_NONATOMIC);
}
- (NSString*)dataStr {
return objc_getAssociatedObject(self, _cmd);
// return objc_getAssociatedObject(self, personNameKey);
}
@end
二、交换方法时
@implementation UITableView (CNEmpty)
+ (void)load{
[self changeSEL];
}
+ (void)changeSEL{
Method formMethod = class_getInstanceMethod(self, @selector(reloadData));
Method toMethod = class_getInstanceMethod(self, @selector(cn_reloadData));
// if (class_addMethod(self, @selector(reloadData), method_getImplementation(toMethod), method_getTypeEncoding(toMethod))){
method_exchangeImplementations(formMethod, toMethod);
// }
}
- (void)cn_reloadData{
[self cn_reloadData];
[self addOrMoveEmptyView];
}
-(void)setHalvingLine:(UITableViewCell *)cell{
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
}
@end