杂记

作者: 咔咔尼亜 | 来源:发表于2019-03-06 18:12 被阅读0次

杂记

交换方法
+ (void)exchangeInstanceMethod:(Class)anClass method1Sel:(SEL)method1Sel method2Sel:(SEL)method2Sel {

 Method originalMethod = class_getInstanceMethod(anClass, method1Sel);

 Method swizzledMethod = class_getInstanceMethod(anClass, method2Sel);

 BOOL didAddMethod =

 class_addMethod(anClass,

 method1Sel,

 method_getImplementation(swizzledMethod),

 method_getTypeEncoding(swizzledMethod));

 if (didAddMethod) {

 class_replaceMethod(anClass,

 method2Sel,

 method_getImplementation(originalMethod),

 method_getTypeEncoding(originalMethod));

 }

 else {

 method_exchangeImplementations(originalMethod, swizzledMethod);

 }
}
BOOL didAddMethod =

 class_addMethod(anClass,

 method1Sel,

 method_getImplementation(swizzledMethod),

 method_getTypeEncoding(swizzledMethod));

给类添加方法1的方法名方法2的方法实现和参数,如果返回成功,那就说明类不存在方法1,直接给类添加了新方法名为方法1方法实现为方法2的方法,然后将类中方法名为方法2的方法的实现替换为方法1的实现;如果返回为NO,证明类中存在方法名为方法1的方法,下面进行交换

响应者链逆向传值

响应者链是从UIApplication->UIViewController->UIView->TableView->cell
cell是第一响应者,所谓的逆向就是从第一响应者到第二响应者或者第三响应者的传值。对层view层较多的情况非常有效。

  1. 给添加UIResponder添加分类
  2. 添加方法 - (void)userInterfaceAction:(NSString *)eventName userInfo:(NSDictionary *)userInfo
  3. 实现方法
- (void)userInterfaceAction:(NSString *)eventName userInfo:(NSDictionary *)userInfo{
    if (self.nextResponder) {
        [self.nextResponder userInterfaceAction:eventName userInfo:userInfo];
    }
}

在需要调用的地方直接调用分类方法,根据eventName参数进行区分(比如在cell中),在需要拦截的地方也实现方法,在方法中进行处理。(比如UIViewController中)。

相关文章

  • 2018-12-01

    练车杂记

  • 学琴杂记

    学琴杂记 一 很小...

  • 散·杂·笔

    本人的记录分为散记、杂记、笔记。 散记,不分类,随心随记。杂记,分类,记录若干范畴的心得,比如物理。笔记,分类,记...

  • 杂记

    绕园一匝,回家敷面膜。 #杂记#

  • 《個蟹杂记》

    《個蟹杂记》(原名《老蟹杂记》) 作者:個蟹 世弊芳华,待来生,匿毒之护你万世。残袭浑穹。祈欢...

  • 南陵一日游(江前进)

    南陵一日游(杂记) 江前进 前言 ...

  • 关于记笔记的思考

    三种笔记:每日杂记,文献笔记,永久笔记每日杂记,就是把你觉得值得记录,需要记录的东西都收录其中的笔记。需要每天整理...

  • 月读分享•八月

    再忙也给自己留点时间看书/桃夭的杂记

  • 关于如何持续写作:他为什么可以火那么久?

    平时看书喜欢看小说,不喜欢看随笔、散文、杂记等,虽然内心一直渴望看点心理学、互联网、散文、随笔、杂记或自传等方面的...

  • 2015-04-23生活杂记——弄一碗番茄煎蛋面

    2015-04-23 生活杂记——弄一碗番茄煎蛋面 今天决定再尝试一种全新的题材,生活杂记。衣食住行皆生活,于是就...

网友评论

      本文标题:杂记

      本文链接:https://www.haomeiwen.com/subject/rzmxpqtx.html