[发明专利]一种输出页面视图控制器的方法、装置及电子设备有效
申请号: | 201710321725.4 | 申请日: | 2017-05-09 |
公开(公告)号: | CN108874381B | 公开(公告)日: | 2021-09-07 |
发明(设计)人: | 汪刚;张文明;陈少杰 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F8/34 | 分类号: | G06F8/34;G06F8/38 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 刘杰 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 输出 页面 视图 控制器 方法 装置 电子设备 | ||
1.一种输出页面视图控制器的方法,其特征在于,所述方法包括:
建立控制所述视图控制器的加载类;
获取目标页面到达当前页面视图控制器的第一生命周期函数;
建立用于监听所述第一生命周期函数的第一监听函数;
建立交换函数,利用所述交换函数将所述第一监听函数添加至所述第一生命周期函数中,获取第一合并函数;
在所述加载类中基于所述第一合并函数获取所述当前页面视图控制器的类名,并输出所述当前页面视图控制器的类名;其中,
所述在所述加载类中利用所述第一合并函数获取所述页面视图控制器的类名,包括:
利用调用函数dispatch_once(onceToken,^{})调用所述第一合并函数;
加载所述加载类,在加载过程中利用所述第一合并函数获取能获取到所述当前页面视图控制器类名的最佳时间戳;
基于所述时间戳,利用class方法获取所述当前页面视图控制器的类名。
2.如权利要求1所述的方法,其特征在于,所述在所述加载类中基于所述第一合并函数获取到所述当前页面视图控制器的类名之前,还包括:
将系统初始化代码加载至系统内存中。
3.如权利要求1所述的方法,其特征在于,建立交换函数,利用所述交换函数将所述第一监听函数添加至所述第一生命周期函数中,获取第一合并函数,包括:
建立交换函数swizzle;
利用class_getInstanceMethod函数获取所述第一生命周期函数的第一名称originalMethod,及所述第一监听函数的第二名称swizzledMethod;
将所述第一名称originalMethod作为所述交换函数swizzle的第一参数,将所述第二名称swizzledMethod作为所述交换函数swizzle的第二参数;
基于所述交换函数swizzle,调用runtime机制将所述第二参数对应的第一监听函数添加至所述第一参数对应的第一生命周期函数中,返回第一添加值;
若所述第一添加值与预设的标识值相同,则利用函数class_replaceMethod发送提示信息;所述预设的标识值用于标识所述第一监听函数添加成功。
4.如权利要求3所述的方法,其特征在于,若所述第一添加值与所述预设的标识值不同,还包括:
利用method_exchangeImplementations函数将所述第一监听函数添加至所述第一生命周期函数中。
5.如权利要求1所述的方法,其特征在于,所述输出所述当前页面视图控制器的类名,包括:
利用NSLOG函数输出所述当前页面视图控制器的类名。
6.一种输出页面视图控制器的装置,其特征在于,所述装置包括:
建立单元,用于建立控制所述视图控制器的加载类、建立用于监听第一生命周期函数的第一监听函数及交换函数;
获取单元,用于获取目标页面到达当前页面视图控制器的第一生命周期函数;
利用所述交换函数将所述第一监听函数添加至所述第一生命周期函数中,获取第一合并函数;
并在所述加载类中基于所述第一合并函数获取所述当前页面视图控制器的类名;
输出单元,用于输出所述当前页面视图控制器的类名;其中,
所述在所述加载类中利用所述第一合并函数获取所述页面视图控制器的类名,包括:
利用调用函数dispatch_once(onceToken,^{})调用所述第一合并函数;
加载所述加载类,在加载过程中利用所述第一合并函数获取能获取到所述当前页面视图控制器类名的最佳时间戳;
基于所述时间戳,利用class方法获取所述当前页面视图控制器的类名。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:加载单元,用于将系统初始化代码加载至系统内存中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710321725.4/1.html,转载请声明来源钻瓜专利网。