CN112835762B - 数据处理方法和装置、存储介质和电子设备 - Google Patents
数据处理方法和装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN112835762B CN112835762B CN202110125576.0A CN202110125576A CN112835762B CN 112835762 B CN112835762 B CN 112835762B CN 202110125576 A CN202110125576 A CN 202110125576A CN 112835762 B CN112835762 B CN 112835762B
- Authority
- CN
- China
- Prior art keywords
- observation
- observed
- candidate
- attribute
- association
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种数据处理方法和装置、存储介质和电子设备,属于计算机技术领域。该方法包括:在监测到对被观察对象执行观察关联操作时,在被观察对象的类对象集合中查找观察关联类对象,其中,观察关联类对象为被观察对象的一个属性,观察关联类对象用于管理被观察对象的观察记录表,观察记录表用于存储与被观察对象对应的至少一个观察记录;确定与观察关联操作对应的目标观察操作函数;在被观察对象对应的观察记录表中,调用目标观察操作函数,更新与观察关联操作对应的目标观察记录。本申请能够有效避免了由于人为因素、或是其他未知因素造成的系统KVO使用不当而引发的崩溃,提升了工作效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法和装置、存储介质和电子设备。
背景技术
KVO(Key Value Observer,键值观察)是Objective-C的一个重要语言特性,通过创建观察对象与某个被观察对象中某个属性之间的KVO监听记录,可以让观察对象对该属性进行监听,这样当该属性的值出现变化时,观察者可以通过KVO监听记录获取到该属性改变前的值和改变后的值。基于KVO特性可以对程序进行一些优化,比如Objective-C语言中通用的刷新框架MJRefresh,第三方类库就可以通过KVO对APP中一些下拉刷新控件进行了优化,从而使使用者不用手动向接入代码中添加下拉刷新处理逻辑,使接入流程有了质的飞跃。
虽然KVO的优点很多,但是如果使用不当,经常会导致系统崩溃。其中,当被观察者释放时,可能添加监听项未移除,这就导致,该监听项可能会再次收到KVO事件,这种情况会引发KVO系统崩溃,且崩溃频率较高,崩溃后定位崩溃原因较为困难,进而也导致解决崩溃问题的效率较低,影响KVO系统的正常应用。
发明内容
为了解决上述技术问题,本申请提供了一种数据处理方法和装置、存储介质和电子设备,以在一定程度上降低KVO使用不当引发的崩溃概率,提高KVO过程的安全性与稳定性。
第一方面,本申请提供了一种数据处理方法,该方法包括:
在监测到对被观察对象执行观察关联操作时,在所述被观察对象的类对象集合中查找观察关联类对象,其中,所述观察关联类对象为所述被观察对象的一个属性,所述观察关联类对象用于管理所述被观察对象的观察记录表,所述观察记录表用于存储与所述被观察对象对应的至少一个观察记录;
确定与所述观察关联操作对应的目标观察操作函数;
在所述被观察对象对应的观察记录表中,调用所述目标观察操作函数,更新与所述观察关联操作对应的目标观察记录。
第二方面,本申请提供了一种数据处理装置,该装置包括:
查找模块,用于在监测到对被观察对象执行观察关联操作时,在所述被观察对象的类对象集合中查找观察关联类对象,其中,所述观察关联类对象为所述被观察对象的一个属性,所述观察关联类对象用于管理所述被观察对象的观察记录表,所述观察记录表用于存储与所述被观察对象对应的至少一个观察记录;
确定模块,用于确定与所述观察关联操作对应的目标观察操作函数;
更新模块,用于在所述被观察对象对应的观察记录表中,调用所述目标观察操作函数,更新与所述观察关联操作对应的目标观察记录。
第三方面,本申请提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面或第二方面中任一所述的数据处理方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有图像数据采集方法的程序,所述数据采集方法的程序被处理器执行时实现第一方面或第二方面中任一所述的数据处理方法的步骤。
与现有技术相比,本申请实施例提供的上述技术方案可以具有如下有益效果:
本申请实施例在被观察对象的类对象集合中设有观察关联类对象,将观察关联类对象作为被观察对象的一个属性,并用来管理被观察对象的观察记录表,在系统KVO监测到系统对被观察对象执行观察关联操作时,调用该观察关联操作对应的目标观察操作函数,更新与观察关联操作对应的目标属性的目标观察记录。这样,当被观察对象释放时,会释放被观察对象的所有属性,由于观察关联类对象也是被观察对象的一个属性,所以会释放观察关联类对象,进而释放观察关联类对象管理的观察记录表,这样防止了现有技术中在被观察者释放时,可能存在添加监听项未移除,这就导致在再次接收到KVO事件,会引起KVO系统的崩溃的问题。综上,本申请实施例所提供的技术方案,能够一定程度上降低KVO使用不当引发的崩溃概率,提高了KVO过程的安全性与稳定性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种可选的数据处理方法流程示意图;
图2为本申请实施例提供的一种可选的调用目标观察操作函数安全移除未释放的监听记录的方法流程示意图;
图3为本申请实施例提供的一种可选的调用目标观察操作函数安全添加观察对象的方法流程示意图;
图4为本申请实施例提供的一种可选的调用目标观察操作函数安全移除观察对象的方法流程示意图;
图5为本申请实施例提供的一种可选的数据处理装置框图;
图6为本申请实施例提供的一种可选的电子设备装置框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个类似的实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
随着App用户量的增加,对客户端性能指标要求越来越严格,在各项指标中,崩溃率的指标尤其重要,因为系统崩溃严重影响App稳定性和用户体验,进而影响用户口碑评价,造成用户的流失。
在引起系统崩溃的众多原因中,由于KVO模式下被观察者释放时,可能添加监听项未移除,进而引起App系统崩溃的情况尤为显著:发生概率较高,且定位问题也较为困难。
为了解决上述问题,本申请实施例提供一种数据处理方法,在本申请实施例中,上述数据处理方法可以应用于任意一种电子设备,且该电子设备具备KVO监控功能,该电子设备可以是终端,也可以是服务器。
KVO模式是一种观察对象模式,其基本思想是:一个被观察对象管理依赖于它的观察对象,并在它自身的状态改变时主动通知它的观察对象;观察对象则用于管理观察记录表,并维护观察记录表中的观察记录。
在KVO模式中,这个主动通知通常是通过调用各观察对象所提供的接口方法来实现的。其中,通知动作的执行是被观察对象发起的,当被观察对象的被观察属性的数据发生变化时,被观察对象直接向观察对象发送通知。例如:被观察对象的属性值改变时,通知其对应的各观察对象自身属性值的变化情况,各观察对象在收到该通知后更新对应的观察记录信息。
本申请实施例的数据处理方法可以由具备KVO监控功能的电子设备来执行,提供一种数据处理方法,如图1所示,该方法包括:
步骤S101,在监测到对被观察对象执行观察关联操作时,在被观察对象的类对象集合中查找观察关联类对象,其中,观察关联类对象为被观察对象的一个属性,观察关联类对象用于管理被观察对象的观察记录表,观察记录表用于存储与被观察对象对应的至少一个观察记录。
在本申请实施例中,在被观察对象的类对象集合中可以提前创建或者根据需要实时创建观察关联类对象,若KVO机制监测到对被观察对象执行了观察关联操作时,先从被观察对象的类对象集合中查找观察关联类对象。在具体应用场景中,类可以为:注册关系管理类,类对象集合可以具体为属性集合。此时,该观察关联类对象为被观察对象的一个属性。其中,将该观察关联类对象作为被观察对象的一个属性的方式可以包括但不限于:通过objc_setAssociatedObject方法将该观察关联类对象添加为被观察者的一个属性。
并且,该观察关联类对象用于管理被观察对象的观察记录表(亦可简称为KVO表),在观察记录表内,可以记录被观察对象与观察对象之间的观察关系记录。换言之,区别于现有技术中由观察对象来维护KVO表的方式,在本发明实施例中,KVO表是由该观察关联类对象来进行直接操作管理的。后续详述管理方式,此处暂不展开。
其中,观察关联操作包含但不限于是:观察添加操作、观察移除操作,或者,观察释放操作。其中,观察添加操作是指:在观察记录表中添加观察记录的操作,观察移除操作是指:移除(或称为删除)观察记录表中的观察记录的操作,观察释放操作是指:释放被观察对象的操作。可以理解,当监测到观察关联操作,观察记录表内记录有观察对象与被观察对象之间的观察记录,也需要要随之做相应的变化。
此外,需要说明的是,在对观察关联操作进行管理时,可以仅针对其中的一条观察记录进行维护管理,例如,添加或删除某一条观察记录;或者,也可以针对具备共性的多条观察记录进行集中管理。示例性的,可以针对被观察对象的某个被观察属性相关的所有观察记录,进行批量移除。
步骤S102,确定与观察关联操作对应的目标观察操作函数。
确定出本申请实施例中对被观察对象执行的观察关联操作所对应的目标观察操作函数。其中,目标观察操作函数是与观察关联操作相对应的函数。
示例性的,观察添加操作对应于观察添加函数,观察移除操作对应于观察移除函数,观察释放操作可以对应于观察释放函数(或者称为析构函数、Dealloc等)。对于任意一个观察关联操作对应的函数而言,在不同实现场景中,函数实现可以相同,或者,也可以不同。可以理解,前述函数名称仅为示例性的,并不用于限制本申请。
步骤S103,在被观察对象对应的观察记录表中,调用目标观察操作函数,更新与观察关联操作对应的目标观察记录。
KVO监测到的对被观察对象执行的观察关联操作后,调用与观察关联操作对应的目标观察操作函数,利用目标观察操作函数来更新与观察关联操作相对应的目标观察记录。比如,目标观察操作函数是将被观察对象的“年龄”属性,添加为被观察属性的操作,也就是,添加与“年龄”属性相关的观察记录的操作,此时,在目标观察记录上应该添加被观察对象属性“年龄”与观察对象之间的观察记录。
本申请实施例在被观察对象的类对象集合中设有观察关联类对象,将观察关联类对象作为被观察对象的一个属性,并用来管理被观察对象的观察记录表,在系统KVO监测到系统对被观察对象执行观察关联操作时,调用该观察关联操作对应的目标观察操作函数,更新与观察关联操作对应的目标属性的目标观察记录。这样,当被观察对象释放时,会释放被观察对象的所有属性,由于观察关联类对象也是被观察对象的一个属性,所以会释放观察关联类对象,进而释放观察关联类对象管理的观察记录表,这样防止了现有技术中在被观察者释放时,可能存在添加监听项未移除,这就导致在再次接收到KVO事件,会引起KVO系统的崩溃的问题。综上,本申请实施例所提供的技术方案,能够一定程度上降低KVO使用不当引发的崩溃概率,提高了KVO过程的安全性与稳定性。
如前所述,该观察管理类对象可以预先创建,这样,被观察对象的类对象集合中存在预先创建的观察关联类对象,不会出现需要进行操作时,不存在观察关联类对象的情况。
除此之外,还可以基于实际需要,动态创建该观察关联类对象。此时,在被观察对象的类对象集合中查找观察关联类对象时,则可能出现:类对象集合中不存在用于管理观察记录表的观察关联类对象的情况,此时需要动态创建该观察关联类对象。这种方式可以理解为“懒加载”方式动态创建观察关联对象。
具体而言,当以“懒加载”方式动态创建观察关联对象时,作为一种可选实施例,在图1所示方法的基础上,该方法还包括:
在类对象集合中不存在观察关联类对象的情况下,创建观察关联类对象;
将观察关联类对象加入到被观察对象的类对象集合中。
本申请实施例中,懒加载方式动态创建观察关联对象时,是在真正使用观察关联类对象时才进行动态创建,在未实现KVO监控之前,或无任何观察记录的情况下,则无需创建观察关联类对象。而采用懒加载的方式,只有在真正使用观察关联类对象时才给予创建,有利于减轻被观察对象的计算压力与存储压力,有利于提高系统性能。
作为一种可选实施例,确定与观察关联操作的对应的目标观察操作函数,包括:
确定与观察关联操作对应的操作类型;操作类型包括:观察释放操作、观察移除操作、观察添加操作;
基于所述操作类型所对应的操作函数的指针,获取指针所指向的目标观察操作函数。
可选地,本申请实施例中,每个操作类型对应一个函数,其中,各个操作类型与其对应的函数之间是通过指针指向来表征的。
所以,在确定目标观察操作函数之前,需要确定观察关联类对象对应操作的指针指向的目标函数,将该目标函数作为目标观察操作函数。
本发明实施例中,目标观察操作函数可以被调用,以实现对由被观察对象维护的观察记录表的维护。
需要注意的是,基于操作类型-指针与函数实现之间的对应关系,在实际实现场景中,则可以利用runtime机制,来重定向(也可称为重定位)指针的指向,从而,可以自定义操作类型所对应的操作函数。
runtime机制主要功能是实现函数的交换,例如,将函数A替换成函数B,则将指针由指向函数A改为指向函数B,在下次调用函数A时,由于实现了函数调用,所以系统实际上直接调用的函数变为了函数B。
具体而言,作为一种可选实施例,方法还包括:
针对任意一种操作类型,获取操作类型对应的自定义操作函数;
对操作类型所对应的操作函数的指针进行重定位处理,使得操作类型所对应的操作函数的指针指向自定义操作函数。
在本申请实施例中,针对任意一种操作类型:观察释放操作、观察移除操作、观察添加操作,可以通过自定义的方式确定至少一种操作类型对应的自定义操作函数,然后利用runtime机制实现对操作类型所对应的操作函数的指针的重定位处理,在确定操作类型后,只需将指针指向对应的自定义函数,即可调用该自定义函数,实现函数的调用,更新对应的观察记录。
例如,将操作函数指针指向KVO安全添加观察对象函数(或者称为addObserver函数),也即,将系统的观察添加函数替换成本申请实施例提供的观察添加函数,也即KVO安全添加观察对象函数,所以在调用系统的观察添加函数时,指针实际指向的是经过自定义的KVO安全添加观察对象函数。
又例如,该当前操作函数在为移除观察对象的情况下,将操作函数指针指向KVO安全移除观察对象函数(或者称为removeObserver函数),也即,将系统的观察移除函数替换成本申请实施例提供的观察移除函数,也即KVO安全移除观察对象函数,所以在调用系统的观察移除函数时,指针实际指向的是经过自定义的KVO安全移除观察对象函数。
可以理解,在该实现方式中,对重定向之前指针所指示的操作函数的函数实现无任何限制,对电子设备实现KVO机制的原有系统架构亦无其它限制。换言之,本申请实施例通过自定义操作函数,并利用runtime机制实现指针指向的重定位,使得在观察释放操作、观察移除操作、观察添加操作的过程中,在不改变原有系统架构的前提下,只需要改动调用自定义的操作函数的代码,即可更改函数实现,使用更安全的函数来实现减少KVO使用不当引发的崩溃,降低崩溃率。
作为一种可选实施例,任意一个观察记录包括:被观察对象的标识、被观察对象中被观察的属性和被观察的属性的验证信息。
可选地,在观察记录表中存储有与被观察对象对应的至少一个观察记录,其中,每条观察记录包括:被观察对象的标识(比如:学生张三),被观察对象中被观察的属性(比如:年龄)和被观察的属性的验证信息(比如:班级平均年龄)。其中,学生张三、年龄、班级平均年龄代表一条观察记录。需要说明的是,被观察的属性的验证信息可以是被观察的属性的上下文信息,该验证信息是可以根据实际情况进行自定义的,比如,当被观察的属性是成绩时,那么被观察的属性的验证信息可以设置为班级平均成绩。
本申请实施例在每条观察记录中都包括被观察对象的标识、被观察对象中被观察的属性和被观察的属性的验证信息,这样确保每条观察记录信息的唯一性。
以下,基于观察关联操作所涉及到的具体情况,分别说明各观察关联操作所对应的更新方式。
第一种情况,观察关联操作为观察释放操作,此时,目标观察操作函数为析构函数。
作为一种可选实施例,当观察关联操作为观察释放操作时,调用目标观察操作函数,更新与观察关联操作对应的目标观察记录,包括:
调用被观察对象的析构函数,将被观察对象内的所有属性进行释放;其中,当被观察对象的析构函数运行时,被观察对象的析构函数调用观察关联类对象的析构函数,以释放观察记录表。
在被观察对象进行释放时,会调用被观察对象的析构函数,其中,析构函数的功能是释放占用内存,这时析构函数会调用移除函数:_object_remove_assocations(obj)来移除所有被观察对象的类对象集合中的属性,其中观察关联类对象就是被观察对象的一个属性。所以,在被观察对象调用析构函数进行释放的过程中就会调用观察关联类对象的析构函数,由于观察关联类对象用于管理被观察对象的观察记录表,所以,调用观察关联类对象的析构函数后,会释放掉该观察记录表。
示例性地,如图2所示,图2为本申请实施例提供的一种可选的调用目标观察操作函数安全移除未释放的监听记录的方法流程示意图。具体步骤为:
步骤S201,被观察对象释放,调用被观察对象的析构函数;
步骤S202,被观察对象的析构函数中释放所有添加的属性;
步骤S203,调用观察关联类对象的析构函数,释放观察记录表;
步骤S204,判断观察记录表是否为空;若否,则执行步骤S205;否则,结束;
步骤S205,释放所有未释放的观察记录。
现有技术中,当被观察者释放时,可能添加监听项未移除,这就导致当该监听项可能再次收到KVO事件时,会引发KVO系统的崩溃。相比之下,本申请实施例在被观察者释放时,通过调用析构函数,会释放被观察对象的所有属性,由于观察关联类对象也是被观察对象的一个属性,所以会释放观察关联类对象,进而释放观察关联类对象管理的观察记录表,这样防止了现有技术中在被观察者释放时,可能存在添加监听项未移除而引发的系统崩溃,提升了程序的稳定性。
第二种情况,观察关联操作为观察添加操作或观察移除操作。
作为一种可选实施例,当观察关联操作为观察添加操作或观察移除操作时,调用目标观察操作函数,更新与观察关联操作对应的目标观察记录,包括:
调用目标观察操作函数,获取观察关联操作中所携带的候选观察信息;
对候选观察信息的有效性进行验证;
当确定候选观察信息有效时,在观察记录表中,添加或移除目标观察记录。
在观察关联操作为观察添加操作或观察移除操作时,需要调用目标观察操作函数,从而获取观察关联操作中携带的候选观察信息。本申请实施例中,区别于现有技术,目标观察操作函数在被调用后,会对候选观察信息的有效性进行验证,验证通过时,才会执行具体的添加或移除操作。通过有效性的验证,来解决KVO系统的部分崩溃问题。
其中,候选观察信息内记录了观察对象与被观察对象中候选被观察属性之间的观察对应关系。
可以理解,观察添加操作或观察移除操作的有效性验证方式不同,后续展开详述。
本申请实施例在监测到对被观察对象执行观察关联操作时,调用与观察关联操作对应的目标观察操作函数,并获取观察关联操作中所携带的候选观察信息,在验证候选观察信息有效的情况下,执行添加或移除目标观察记录的操作,这样,本申请实施例提供了一个通用的处理由于系统KVO使用不当引发的崩溃解决方案,可为平行业务提供一个通用的解决方案,进一步提升工作效率。
应当理解,基于观察添加操作与观察移除操作对观察记录表的操作方式不同,在具体进行有效性验证时,二者所采取的验证方式不同:
一方面,说明观察关联操作为观察添加操作的情况。
作为一种可选实施例,当观察关联操作为观察添加操作时,对候选观察信息进行验证,包括:
验证候选观察信息所指示的候选观察对象的有效性;
验证候选观察信息所指示的候选属性,是否为被观察对象的观察关联属性;
在观察记录表中,验证是否存在与候选观察信息完全匹配的观察记录;
当候选观察对象有效、候选属性为观察关联属性,且不存在与候选观察信息完全匹配的观察记录时,确定候选观察信息有效。
可选地,在观察关联操作是观察添加操作时,需要提取出观察添加操作的操作信息,例如,在对被观察对象的被观察属性添加观察对象时,需要把观察对象的对象标识:老师2,被观察对象的对象标识:学生张三,被观察对象的被观察属性的属性标识:年龄这些操作信息都提取出来。
判断被观察属性的有效性,即判断被观察属性是否为观察关联属性,在被观察属性为观察关联属性时,更新与被观察属性对应的目标观察记录。其中,观察关联属性用于指示被观察属性是有效的,确定被观察属性是观察关联属性的方式为被观察对象的预设属性列表中包含该被观察属性,且该被观察属性是被观察对象的被观察属性。
其中,预设属性列表内记录了被观察对象的所有被观察属性,被观察对象的预设属性列表中包含该被观察属性是指,该被观察属性存在在预设属性列表内;被观察属性是被观察对象的被观察属性是指,该被观察属性是已经被执行了观察操作的属性。故,只有该被观察属性已存在在预设属性列表中且已经被执行了观察操作,那么该被观察属性才是有效的,也即该被观察属性是观察关联属性。
只有添加的候选观察对象有效、候选属性为观察关联属性且在观察记录表内不存在与候选观察信息完全匹配的观察记录时,才确定候选观察信息是有效的。其中,候选观察信息内记载的有:候选观察对象、候选属性以及候选属性的验证信息。
与候选观察信息完全匹配的观察记录是指,与候选观察信息内记载的候选观察对象、候选属性以及候选属性的验证信息三个数据完全一致。只有在观察记录表中不存在与候选观察信息完全匹配的记录信息,才能说明当前添加的观察对象是可以被添加的,不会引起重复添加观察对象的情况。
本申请实施例在执行观察添加操作时,需要对候选观察信息进行有效性的验证,包括候选对象有效性的验证,候选属性有效性的验证和候选观察信息排重的验证,这样可以防止由于添加的候选观察信息已存在在观察记录表或者候选观察信息中的候选观察对象无效或者候选观察信息中的候选属性无效而出现在观察添加操作过程中带来的崩溃。
在执行观察添加操作时,作为一种可选实施例,验证候选观察信息所指示的候选观察对象的有效性,包括:
遍历候选观察信息所指示的候选观察对象对应的函数列表,函数列表用于维护候选观察对象所能实现的所有函数;
当函数列表中存在observeValueForKeyPath函数时,确定候选观察对象有效。
可选地,在确定候选观察对象的有效性时,需要遍历候选观察信息所指示的候选观察对象对应的函数列表,只有候选观察对象已经完成了对被观察对象的被观察属性的事件函数的调用操作,即候选观察对象实现了observeValueForKeyPath方法调用时,才能证明候选观察对象是有效的。其中,函数列表用于维护候选观察对象所能实现的所有函数。
本申请实施例通过在添加观察对象时,检查观察对象是否实现了observeValueForKeyPath方法,只有添加的观察对象实现了observeValueForKeyPath方法才是有效观察对象,再进行后续的观察添加操作,否则视为无效观察对象,不进行添加,这样用以防止添加观察对象过程由于添加的观察对象未实现observeValueForKeyPath方法而引入的崩溃。
通过前述方案,当确定候选观察信息有效时,在观察记录表中,添加或移除目标观察记录,包括:
当确定候选观察信息有效时,基于候选观察信息生成目标观察记录,并将目标观察记录添加至观察记录表中。
具体实现时,在确定候选观察信息有效的情况下,基于候选观察信息生成对应的目标观察记录,并将目标观察记录添加至观察记录表中。
例如,在候选观察信息中,候选观察对象是:学生2,候选属性是:成绩62分;同时,在候选观察信息中记载了候选属性的验证信息:班级平均成绩66分,这时,查看观察记录表内是否存在:观察对象学生2、成绩62分、班级平均成绩66分的观察记录,只有不存在这条观察记录的情况下,才认为候选观察信息是有效的,将候选观察信息(观察对象学生2、成绩62分、班级平均成绩66分)添加至观察记录表中。
可选地,如图3所示,本申请实施例在添加观察对象时,利用runtime机制完成函数交换,将替换后的KVO安全添加观察对象函数作为目标观察操作函数;判断候选观察信息内的候选观察对象是否为有效对象;在候选对象为有效的情况下,判断候选属性是否为观察关联属性;在候选属性为观察关联属性的情况下,判断观察记录表内是否存在与候选观察信息完全匹配的观察记录;在观察记录表内不存在与候选观察信息完全匹配的观察记录的情况下,基于候选观察信息生成目标观察记录,并将目标观察记录添加至观察记录表中。
另一方面,说明观察关联操作为观察移除操作的情况。
作为一种可选实施例,当观察关联操作为观察移除操作时,
对候选观察信息进行验证,包括:
在观察记录表中,验证是否存在与候选观察信息完全匹配的观察记录;
当观察记录表中存在与候选观察信息完全匹配的观察记录时,确定候选观察信息有效。
本申请实施例中,在确定观察关联操作为观察移除操作时,需要验证候选观察信息的有效性:验证在观察记录表中,验证是否存在与候选观察信息完全匹配的观察记录;
只有在观察记录表中存在与候选观察信息完全匹配的观察记录的情况下,才能确定候选观察信息有效。
当确定候选观察信息有效时,在观察记录表中,添加或移除目标观察记录,包括:
当确定候选观察信息有效时,在观察记录表中移除目标观察记录,目标观察记录与候选观察信息完全匹配。
本申请实施例中,在确定观察关联操作为观察移除操作时,需要验证候选观察信息的有效性:验证在观察记录表中,验证是否存在与候选观察信息完全匹配的观察记录;
只有在观察记录表中存在与候选观察信息完全匹配的观察记录的情况下,才能确定候选观察信息有效,在观察记录表中移除与候选观察信息对应的目标观察记录。
需要说明的是,在观察记录表内移除与候选观察信息对应的目标观察记录时,需要确定候选观察信息内的候选属性为观察关联属性(即被观察对象的预设属性列表中包含候选属性且候选属性为被观察对象的被观察的属性)。
其中,目标观察记录与候选观察信息完全匹配,包括:
目标观察记录中的被观察对象、被观察对象中被观察的属性和被观察的属性的验证信息,与候选观察信息所指示的被观察对象、被观察对象中被观察的属性和被观察的属性的验证信息,完全相同。
具体实施时,只有目标观察记录中的被观察对象、被观察对象中被观察的属性和被观察的属性的验证信息,与候选观察信息所指示的被观察对象、被观察对象中被观察的属性和被观察的属性的验证信息,完全相同的情况下,才能保证移除的目标观察记录为同一条观察记录。
可选地,如图4所示,本申请实施例在移除观察对象时,利用runtime机制完成函数交换,将替换后的KVO安全移除观察对象函数作为目标观察操作函数;判断观察记录表中是否存在与候选观察信息完全匹配的观察记录;在存在与候选观察信息完全匹配的观察记录的情况下,判断候选观察信息内的候选属性是否为观察关联属性;在确定候选属性是观察关联属性的情况下,从观察记录表中移除目标观察记录,其中,目标观察记录与候选观察信息完全匹配。
本申请实施例在观察移除操作时,需要对候选观察信息进行有效性的验证,包括验证观察记录表中是否存在与候选观察信息完全匹配的观察记录,只有观察记录表中存在与候选观察信息完全匹配的观察记录时,才执行对候选观察信息的观察移除操作,这样可以防止相关技术中由于移除候选观察信息时,移除的不是同一条记录,造成在观察记录表中找不到对应观察记录而带来的崩溃问题。
综上,前述不同的实施例可以结合使用,当其结合使用时,本方案不仅能解决由于被观察者释放时,可能添加监听项未移除而导致的KVO崩溃问题,还能够解决观察对象未实现observeValueForKeyPath方法而引入的崩溃问题、移除不存在的属性导致的崩溃问题、移除存在但是未观察而导致的崩溃问题、添加和删除的KVO上下文不一致的崩溃问题,换言之,本申请实施例不仅能够解决自定义类产生的相关异常崩溃,还能够解决系统类使用不当产生的相关崩溃,能够有效降低KVO系统的崩溃概率,维护KVO系统的稳定性。
并且,通过runtime方式重定向函数实现的方式,无需对现有KVO系统的代码使用方式做任何改动,即可灵活多变的更改函数实现,通用性较高。并且,在函数实现过程中增加有效性验证环节,这相当于在KVO系统外围无感知的提供了一层防护,有效避免了由于人为因素、或是其他未知因素造成的由于系统KVO使用不当引发的崩溃,极大的降低了崩溃率。
根据本申请实施例的另一个方面,还提供了一种数据处理装置。该装置用于在前述各实施例中完成本申请实施例提供的数据处理的技术方案。因此,在前述各实施例中的本申请实施例提供的数据处理方法中的描述和定义,可以用于本申请实施例中各执行模块的理解。
图5为根据本申请实施例的一种可选的数据处理装置框图,如图5所示,该装置包括:
查找模块501,用于在监测到对被观察对象执行观察关联操作时,在被观察对象的类对象集合中查找观察关联类对象,其中,观察关联类对象为被观察对象的一个属性,观察关联类对象用于管理被观察对象的观察记录表,观察记录表用于存储与被观察对象对应的至少一个观察记录;
确定模块502,用于确定与观察关联操作对应的目标观察操作函数;
更新模块503,用于在被观察对象对应的观察记录表中,调用目标观察操作函数,更新与观察关联操作对应的目标观察记录。
本申请实施例在被观察对象的类对象集合中设有观察关联类对象,将观察关联类对象作为被观察对象的一个属性,并用来管理被观察对象的观察记录表,在系统KVO监测到系统对被观察对象执行观察关联操作时,调用该观察关联操作对应的目标观察操作函数,更新与观察关联操作对应的目标属性的目标观察记录。这样,当被观察对象释放时,会释放被观察对象的所有属性,由于观察关联类对象也是被观察对象的一个属性,所以会释放观察关联类对象,进而释放观察关联类对象管理的观察记录表,这样防止了现有技术中在被观察者释放时,可能存在添加监听项未移除,这就导致在再次接收到KVO事件,会引起KVO系统的崩溃的问题。综上,本申请实施例所提供的技术方案,能够一定程度上降低KVO使用不当引发的崩溃概率,提高了KVO过程的安全性与稳定性。
作为一种可选实施例,该装置还包括:
创建模块,由于在类对象集合中不存在观察关联类对象的情况下,创建观察关联类对象;
添加模块,用于将观察关联类对象加入到被观察对象的类对象集合中。
作为一种可选实施例,确定模块包括:
第一确定单元,用于确定与观察关联操作对应的操作类型;操作类型包括:观察释放操作、观察移除操作、观察添加操作;
获取单元,用于基于操作类型所对应的操作函数的指针,获取指针所指向的目标观察操作函数。
作为一种可选实施例,该装置还包括:
获取模块,用于针对任意一种操作类型,获取操作类型对应的自定义操作函数;
重定位模块,用于对操作类型所对应的操作函数的指针进行重定位处理,使得操作类型所对应的操作函数的指针指向自定义操作函数。
作为一种可选实施例,任意一个观察记录包括:被观察对象的标识、被观察对象中被观察的属性和被观察的属性的验证信息。
作为一种可选实施例,更新模块包括:
第一调用单元,用于当观察关联操作为观察释放操作时,调用被观察对象的析构函数,将被观察对象内的所有属性进行释放;其中,当被观察对象的析构函数运行时,被观察对象的析构函数调用观察关联类对象的析构函数,以释放观察记录表。
作为一种可选实施例,更新模块包括:
第二调用单元,用于观察关联操作为观察添加操作或观察移除操作时,调用目标观察操作函数,获取观察关联操作中所携带的候选观察信息;
第一验证单元,用于对候选观察信息的有效性进行验证;
添加或移除单元,用于当确定候选观察信息有效时,在观察记录表中,添加或移除目标观察记录。
作为一种可选实施例,第一验证单元包括:
第一验证子单元,用于当观察关联操作为观察添加操作时,验证候选观察信息所指示的候选观察对象的有效性;
第二验证子单元,用于验证候选观察信息所指示的候选属性,是否为被观察对象的观察关联属性;
第三验证子单元,用于在观察记录表中,验证是否存在与候选观察信息完全匹配的观察记录;
第一确定子单元,用于当候选观察对象有效、候选属性为观察关联属性,且不存在与候选观察信息完全匹配的观察记录时,确定候选观察信息有效;
添加或移除单元包括:
添加子单元,用于当确定候选观察信息有效时,基于候选观察信息生成目标观察记录,并将目标观察记录添加至观察记录表中。
作为一种可选实施例,第一验证子单元包括:
遍历子单元,用于遍历候选观察信息所指示的候选观察对象对应的函数列表,函数列表用于维护候选观察对象所能实现的所有函数;
第二确定子单元,用于当函数列表中存在observeValueForKeyPath函数时,确定候选观察对象有效。
作为一种可选实施例,第二验证子单元包括:
第一判断子单元,用于判断被观察对象的预设属性列表中,是否包含候选属性;
第二判断子单元,用于判断候选属性是否为被观察对象的被观察的属性;
第三确定子单元,用于当被观察对象的预设属性列表中包含候选属性且候选属性为被观察对象的被观察的属性时,确定候选属性为被观察对象的观察关联属性。
作为一种可选实施例,第一验证单元包括:
第四验证子单元,用于当观察关联操作为观察移除操作时,在观察记录表中,验证是否存在与候选观察信息完全匹配的观察记录;
第四确定子单元,用于当观察记录表中存在与候选观察信息完全匹配的观察记录时,确定候选观察信息有效;
添加或移除单元包括:
移除子单元,用于当确定候选观察信息有效时,在观察记录表中移除目标观察记录,目标观察记录与候选观察信息完全匹配,其中,目标观察记录与候选观察信息完全匹配,包括:目标观察记录中的被观察对象、被观察对象中被观察的属性和被观察的属性的验证信息,与候选观察信息所指示的被观察对象、被观察对象中被观察的属性和被观察的属性的验证信息,完全相同。
可选地,本实施例的装置中各模块实现其功能的具体过程可参见对应的方法实施例中的相关描述,此处不再赘述。
本申请实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现如前述任意一个实施例所述的数据处理方法,此处不再重复。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一实施例的数据处理方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一实施例的数据处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
以上仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (13)
1.一种数据处理方法,其特征在于,所述方法包括:
在监测到对被观察对象执行观察关联操作时,在所述被观察对象的类对象集合中查找观察关联类对象,其中,所述观察关联类对象为所述被观察对象的一个属性,所述观察关联类对象用于管理所述被观察对象的观察记录表,所述观察记录表用于存储与所述被观察对象对应的至少一个观察记录;
确定与所述观察关联操作对应的目标观察操作函数,包括:确定与观察关联操作对应的操作类型;所述操作类型包括:观察释放操作、观察移除操作、观察添加操作;基于所述操作类型所对应的操作函数的指针,获取指针所指向的目标观察操作函数;
在所述被观察对象对应的观察记录表中,调用所述目标观察操作函数,更新与所述观察关联操作对应的目标观察记录,任意一个所述观察记录包括:被观察对象的标识、被观察对象中被观察的属性和被观察的属性的验证信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述类对象集合中不存在所述观察关联类对象的情况下,创建所述观察关联类对象;
将所述观察关联类对象加入到所述被观察对象的类对象集合中。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对任意一种所述操作类型,获取所述操作类型对应的自定义操作函数;
对所述操作类型所对应的操作函数的指针进行重定位处理,使得所述操作类型所对应的操作函数的指针指向所述自定义操作函数。
4.根据权利要求1所述的方法,其特征在于,当所述观察关联操作为观察释放操作时,所述调用所述目标观察操作函数,更新与所述观察关联操作对应的目标观察记录,包括:
调用所述被观察对象的析构函数,将所述被观察对象内的所有属性进行释放;其中,当所述被观察对象的析构函数运行时,所述被观察对象的析构函数调用所述观察关联类对象的析构函数,以释放所述观察记录表。
5.根据权利要求1所述的方法,其特征在于,当所述观察关联操作为观察添加操作或观察移除操作时,所述调用所述目标观察操作函数,更新与所述观察关联操作对应的目标观察记录,包括:
调用所述目标观察操作函数,获取所述观察关联操作中所携带的候选观察信息;
对所述候选观察信息的有效性进行验证;
当确定所述候选观察信息有效时,在所述观察记录表中,添加或移除所述目标观察记录。
6.根据权利要求5所述的方法,其特征在于,当所述观察关联操作为所述观察添加操作时,
所述对所述候选观察信息进行验证,包括:
验证所述候选观察信息所指示的候选观察对象的有效性;
验证所述候选观察信息所指示的候选属性,是否为所述被观察对象的观察关联属性;
在所述观察记录表中,验证是否存在与所述候选观察信息完全匹配的观察记录;
当所述候选观察对象有效、所述候选属性为所述观察关联属性,且不存在与所述候选观察信息完全匹配的观察记录时,确定所述候选观察信息有效;
当确定所述候选观察信息有效时,在所述观察记录表中,添加或移除所述目标观察记录,包括:
当确定所述候选观察信息有效时,基于所述候选观察信息生成所述目标观察记录,并将所述目标观察记录添加至所述观察记录表中。
7.根据权利要求6所述的方法,其特征在于,所述验证所述候选观察信息所指示的候选观察对象的有效性,包括:
遍历所述候选观察信息所指示的候选观察对象对应的函数列表,所述函数列表用于维护所述候选观察对象所能实现的所有函数;
当所述函数列表中存在observeValueForKeyPath函数时,确定所述候选观察对象有效。
8.根据权利要求6所述的方法,其特征在于,所述验证所述观察信息所指示的候选属性,是否为所述被观察对象的观察关联属性,包括:
判断被观察对象的预设属性列表中,是否包含所述候选属性;
判断所述候选属性是否为所述被观察对象的被观察的属性;
当被观察对象的预设属性列表中包含所述候选属性且所述候选属性为所述被观察对象的被观察的属性时,确定所述候选属性为所述被观察对象的观察关联属性。
9.根据权利要求5所述的方法,其特征在于,当所述观察关联操作为所述观察移除操作时,
所述对所述候选观察信息进行验证,包括:
在所述观察记录表中,验证是否存在与所述候选观察信息完全匹配的观察记录;
当所述观察记录表中存在与所述候选观察信息完全匹配的观察记录时,确定所述候选观察信息有效;
当确定所述候选观察信息有效时,在所述观察记录表中,添加或移除所述目标观察记录,包括:
当确定所述候选观察信息有效时,在所述观察记录表中移除所述目标观察记录,所述目标观察记录与所述候选观察信息完全匹配。
10.根据权利要求8所述的方法,其特征在于,所述目标观察记录与所述候选观察信息完全匹配,包括:
所述目标观察记录中的被观察对象、被观察对象中被观察的属性和被观察的属性的验证信息,与所述候选观察信息所指示的被观察对象、被观察对象中被观察的属性和被观察的属性的验证信息,完全相同。
11.一种数据处理装置,其特征在于,所述装置包括:
查找模块,用于在监测到对被观察对象执行观察关联操作时,在所述被观察对象的类对象集合中查找观察关联类对象,其中,所述观察关联类对象为所述被观察对象的一个属性,所述观察关联类对象用于管理所述被观察对象的观察记录表,所述观察记录表用于存储与所述被观察对象对应的至少一个观察记录;
确定模块,用于确定与所述观察关联操作对应的目标观察操作函数,包括:确定与观察关联操作对应的操作类型;所述操作类型包括:观察释放操作、观察移除操作、观察添加操作;基于所述操作类型所对应的操作函数的指针,获取指针所指向的目标观察操作函数;
更新模块,用于在所述被观察对象对应的观察记录表中,调用所述目标观察操作函数,更新与所述观察关联操作对应的目标观察记录,任意一个所述观察记录包括:被观察对象的标识、被观察对象中被观察的属性和被观察的属性的验证信息。
12.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:
存储器,用于存放计算机程序;
处理器,用于通过运行存储器上所存放的程序来执行权利要求1至10中任一项所述的数据处理方法的步骤。
13.一种可读计算机存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至10中任一项所述的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110125576.0A CN112835762B (zh) | 2021-01-29 | 2021-01-29 | 数据处理方法和装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110125576.0A CN112835762B (zh) | 2021-01-29 | 2021-01-29 | 数据处理方法和装置、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112835762A CN112835762A (zh) | 2021-05-25 |
CN112835762B true CN112835762B (zh) | 2023-09-01 |
Family
ID=75931056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110125576.0A Active CN112835762B (zh) | 2021-01-29 | 2021-01-29 | 数据处理方法和装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112835762B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626245B (zh) * | 2021-08-27 | 2023-04-07 | 四川虹美智能科技有限公司 | 防止ios应用程序崩溃的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7954110B1 (en) * | 2004-06-22 | 2011-05-31 | Apple Inc. | Observing properties associated with an object in an object-oriented programming platform |
CN108334415A (zh) * | 2017-01-20 | 2018-07-27 | 百度在线网络技术(北京)有限公司 | 一种容错处理方法、装置、终端及存储介质 |
CN108845856A (zh) * | 2018-06-11 | 2018-11-20 | 腾讯科技(深圳)有限公司 | 数据绑定方法、装置、存储介质及设备 |
CN110597573A (zh) * | 2019-08-23 | 2019-12-20 | 贝壳技术有限公司 | 一种入库请求数据处理方法及装置 |
CN111694676A (zh) * | 2020-04-30 | 2020-09-22 | 北京奇艺世纪科技有限公司 | 一种针对键值观察模式的处理方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150293797A1 (en) * | 2014-04-14 | 2015-10-15 | Chall Fry | Methods and systems for key value observing |
FR3043813A1 (fr) * | 2015-11-18 | 2017-05-19 | Bull Sas | Procede de mise a jour d'un enregistrement dans une base de donnees par un dispositif de traitement de donnees |
US11194812B2 (en) * | 2018-12-27 | 2021-12-07 | Microsoft Technology Licensing, Llc | Efficient aggregation of sliding time window features |
-
2021
- 2021-01-29 CN CN202110125576.0A patent/CN112835762B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7954110B1 (en) * | 2004-06-22 | 2011-05-31 | Apple Inc. | Observing properties associated with an object in an object-oriented programming platform |
CN108334415A (zh) * | 2017-01-20 | 2018-07-27 | 百度在线网络技术(北京)有限公司 | 一种容错处理方法、装置、终端及存储介质 |
CN108845856A (zh) * | 2018-06-11 | 2018-11-20 | 腾讯科技(深圳)有限公司 | 数据绑定方法、装置、存储介质及设备 |
CN110597573A (zh) * | 2019-08-23 | 2019-12-20 | 贝壳技术有限公司 | 一种入库请求数据处理方法及装置 |
CN111694676A (zh) * | 2020-04-30 | 2020-09-22 | 北京奇艺世纪科技有限公司 | 一种针对键值观察模式的处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112835762A (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110113315B (zh) | 一种业务数据的处理方法及设备 | |
CN109450969B (zh) | 从第三方数据源服务器中获取数据的方法、装置和服务器 | |
US10509716B2 (en) | Automated recovery of flighted features based on service requests | |
US9514176B2 (en) | Database update notification method | |
US20190005252A1 (en) | Device for self-defense security based on system environment and user behavior analysis, and operating method therefor | |
US20120151036A1 (en) | Identifying stray assets in a computing enviroment and responsively taking resolution actions | |
EP3671512B1 (en) | Automated software vulnerability determination | |
CN112835762B (zh) | 数据处理方法和装置、存储介质和电子设备 | |
US11874932B2 (en) | Managing application security vulnerabilities | |
CN112131478A (zh) | 交易检测方法及装置 | |
US11550692B2 (en) | Integrated event processing and policy enforcement | |
KR20230086790A (ko) | 서드파티 라이브러리 개발 시스템에서 사용하기 위한 애플리케이션 오류 데이터 제공 | |
CN108959405B (zh) | 数据的强一致性读取方法及终端设备 | |
KR102102220B1 (ko) | 권한 관리 방법 및 장치 | |
CN114491653A (zh) | 数据内容防篡改系统、方法及装置 | |
CN105138915B (zh) | 一种进程操作的处理方法及装置 | |
CN109918895B (zh) | 用于输出数据的方法、电子设备和计算机可读介质 | |
CN117195204B (zh) | 异常数据检测方法、装置、电子设备及计算机可读介质 | |
CN110661792B (zh) | 服务有序调用方法、装置、电子设备及存储介质 | |
US11769005B2 (en) | Information uniqueness assessment using string-based collection frequency | |
CN111614747B (zh) | 一种信息处理方法及装置 | |
CN113785293B (zh) | 对本地安装在用户设备上的防病毒软件的文件存储服务启动 | |
US20220269791A1 (en) | System and method for automatically identifying software vulnerabilities using named entity recognition | |
US20220245648A1 (en) | Enterprise digital customer segments for products and services | |
US20230195901A1 (en) | Model-based upgrade recommendations using software dependencies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |