
技术摘要:
本申请是关于一种通知处理方法、装置及设备。该通知处理方法包括:设置单例类作为观察者target,向所述单例类传入类实例发送的参数;所述单例类对所述类实例传入的参数进行处理;调用系统通知方法为所述单例类绑定观察者响应action;通过所述单例类发送通知,并由所述 全部
背景技术:
通知,是iOS开发中一种重要的设计模式,它的实质是程序内部提供的一种广播机 制,将接收到的消息根据内部消息转发表转发给需要的对象。 通知这种设计模式,在开发中常用于不同类之间的通信,也就是常说的页面之间 的传值。例如在iOS等系统的相关软件项目开发中,常见的一对多传值方式主要是通过系统 自带的通知的方式。 但是,通过系统自带的通知传过来的值是匿名的,可读性差,不便于维护,特别在 通知传值应用比较多的软件项目中,很难对通知进行统一管理。
技术实现要素:
为克服相关技术中存在的问题,本申请提供一种通知处理方法、装置及设备,能对 通知进行统一管理,提高了信息传输的可靠性和透明性。 根据本申请的第一方面,提供一种通知处理方法,包括: 设置单例类作为观察者target,向所述单例类传入类实例发送的参数; 通过所述单例类对所述类实例传入的参数进行处理; 调用系统通知方法为所述单例类绑定观察者响应action; 通过所述单例类发送通知,并由所述类实例对接收的通知中的数据进行处理。 在一种实施方式中,所述向所述单例类传入类实例发送的参数,包括: 向所述单例类传入类实例发送的类实例、通知名和块block。 在一种实施方式中,所述通过单例类对所述类实例传入的参数进行处理,包括: 所述单例类根据所述参数中的通知名获取所有调用该通知名的类实例; 根据所述参数中的类实例的内存地址,在判断出传入的类实例未添加过所述通知 名时,调用系统通知进行监听,并将该类实例的内存地址描述与传入的block保存。 在一种实施方式中,所述将该类实例的内存地址描述与传入的block保存,包括: 将该类实例的内存地址描述与传入的block按设定数据结构保存; 其中所述设定数据结构为以通知名为键key、以值value为数组的字典,其中所述 数组中的数组元素为以类实例的内存地址描述为key,以block为value的字典。 在一种实施方式中,所述通过所述单例类发送通知,并由所述类实例对接收的通 知中的数据进行处理,包括: 调用所述单例类,向所述单例类传入通知名和需传递的数据; 所述单例类调用系统发送通知的方法发送通知,所述通知中包含通知名和需传递 的数据; 通过所述通知名查找到对应的类实例和block,调用所述block,将所述通知通过 4 CN 111611092 A 说 明 书 2/8 页 对应的block回调给监听通知的类实例; 通过所述类实例对回调的通知中的数据进行解析处理。 根据本申请的第二方面,提供一种通知处理装置,包括: 单例类设置模块,用于设置单例类作为观察者target,向所述单例类传入类实例 发送的参数; 第一处理模块,用于通过所述单例类对所述类实例传入的参数进行处理; 绑定模块,用于调用系统通知方法为所述单例类绑定观察者响应action; 第二处理模块,用于通过所述单例类发送通知,并由所述类实例对接收的通知中 的数据进行处理。 在一种实施方式中,所述第一处理模块包括: 获取子模块,用于由所述单例类根据所述参数中的通知名获取所有调用该通知名 的类实例; 判断处理子模块,用于根据所述参数中的类实例的内存地址,在判断出传入的类 实例未添加过所述通知名时,调用系统通知进行监听,并将该类实例的内存地址描述与传 入的block保存。 在一种实施方式中,所述第二处理模块包括: 第一调用子模块,用于调用所述单例类,向所述单例类传入通知名和需传递的数 据; 第二调用子模块,用于由所述单例类调用系统发送通知的方法发送通知,所述通 知中包含通知名和需传递的数据; 第三调用子模块,用于通过所述通知名查找到对应的类实例和block,调用所述 block,将所述通知通过对应的block回调给监听通知的类实例; 解析处理子模块,用于通过所述类实例对回调的通知中的数据进行解析处理。 根据本申请的第三方面,提供一种电子设备,包括: 处理器;以及 存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述 处理器执行如上所述的方法。 根据本申请的第四方面,提供一种非暂时性机器可读存储介质,其上存储有可执 行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方 法。 本申请提供的技术方案可以包括以下有益效果: 本申请通过自建一个单例类作为观察者target,可以将项目中的通知都收敛在一 个类中,并将通知传递的值显式的展示出来供target处理。因为将所有通知都收敛在一个 自建的单例类中,所以可以实现对通知进行统一管理,提高信息传输的可靠性和透明性,同 时也提高了代码的可读性、可维护性、鲁棒性以及编码速度。 进一步的,本申请是同时利用了单例类和block(块)技术,将项目中的通知都收敛 在一个类中,将收到通知的处理逻辑写在监听通知处附近,并将通知传递的值显式的展示 出来供target处理,从而可以实现对通知进行统一管理。 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不 5 CN 111611092 A 说 明 书 3/8 页 能限制本申请。 附图说明 通过结合附图对本申请示例性实施方式进行更详细的描述,本申请的上述以及其 它目的、特征和优势将变得更加明显,其中,在本申请示例性实施方式中,相同的参考标号 通常代表相同部件。 图1是根据本申请一示例性实施例示出的一种通知处理方法的流程示意图; 图2是根据本申请一示例性实施例示出的一种通知处理方法的另一流程示意图; 图3是根据本申请一示例性实施例示出的一种通知处理装置的结构示意图; 图4是根据本申请一示例性实施例示出的一种通知处理装置的另一结构示意图; 图5是根据本申请一示例性实施例示出的一种电子设备的结构示意图。