The embodiment of the present invention discloses an associated object tracking method, which includes: calling open source tools to dynamically modify multiple entry functions used to implement the associated object in the bottom of the operating system; acquiring the current object and adding strong reference identifiers to the current object; and creating temporary corresponding to the current object through multiple entry functions. Relevant object; Find the key value corresponding to the temporary associated object from the default mapping table to determine whether the key value exists in the hash storage table used to store the associated object; If it exists, determine whether the strong reference identifier in the current object is passed into the temporary associated object; If it exists, determine whether the strong reference identifier in the current object is passed into the temporary associated object; If it is determined that the strong reference in the current object exists. When an identifier is passed into a temporary association object, it is determined that the temporary association object is a strongly referenced Association object of the current object. The embodiment of the present invention also discloses an associated object tracking device. The embodiment of the present invention can improve the efficiency of querying related objects and the accuracy of acquiring related objects.
【技术实现步骤摘要】
一种关联对象追踪方法及装置
本专利技术涉及电子
,尤其涉及一种关联对象追踪方法及装置。
技术介绍
在移动设备操作系统iOS中,Object-C是一套面向对象的语言,具备面向对象的语言特性(封装、继承和多态),同时也具备静态语言的特性,又有动态特性(动态类型、动态绑定和动态加载)。为了提高使用Object-C语言编程效率,需要查询对象所对应的关联对象、并分析对象的引用关系属性。但是,现有技术采用的人工查询并分析对象关联的属性,导致效率低下,而且并不能准确地获取到强引用的关联对象。
技术实现思路
本专利技术实施例提供一种关联对象追踪方法及装置。可以提高查询关联对象的效率,以及提高获取关联对象的准确性。本专利技术第一方面提供了一种关联对象追踪方法,包括:调用开源工具动态修改操作系统底层中用于实现关联对象的多个入口函数;获取当前对象,并在所述当前对象中加入强引用标识符;通过所述多个入口函数创建所述当前对象所对应的临时关联对象;从预设的关联对象映射表中查找与所述临时关联对象对应的键值,确定所述键值是否存在于用于存储关联对象的哈希存储表中;若存在,则确定所述当前对象中的所述强引用标识符是否传入所述临时关联对象中;若确定所述当前对象中的所述强引用标识符传入所述临时关联对象中,则确定所述临时关联对象为所述当前对象的强引用关联对象。其中,所述通过所述多个入口函数创建所述当前对象所对应的临时关联对象之前,还包括:确定所述当前对象是否存在关联对象。其中,所述确定所述当前对象是否存在关联对象包括:获取所述当前对象的结构体指针,并在所述结构体指针中查找目标变量的值;根据所述目标变 ...
【技术保护点】
1.一种关联对象追踪方法,其特征在于,所述方法包括:调用开源工具动态修改操作系统底层中用于实现关联对象的多个入口函数;获取当前对象,并在所述当前对象中加入强引用标识符;通过所述多个入口函数创建所述当前对象所对应的临时关联对象;从预设的关联对象映射表中查找与所述临时关联对象对应的键值,确定所述键值是否存在于用于存储关联对象的哈希存储表中;若存在,则确定所述当前对象中的所述强引用标识符是否传入所述临时关联对象中;若确定所述当前对象中的所述强引用标识符传入所述临时关联对象中,则确定所述临时关联对象为所述当前对象的强引用关联对象。
【技术特征摘要】
1.一种关联对象追踪方法,其特征在于,所述方法包括:调用开源工具动态修改操作系统底层中用于实现关联对象的多个入口函数;获取当前对象,并在所述当前对象中加入强引用标识符;通过所述多个入口函数创建所述当前对象所对应的临时关联对象;从预设的关联对象映射表中查找与所述临时关联对象对应的键值,确定所述键值是否存在于用于存储关联对象的哈希存储表中;若存在,则确定所述当前对象中的所述强引用标识符是否传入所述临时关联对象中;若确定所述当前对象中的所述强引用标识符传入所述临时关联对象中,则确定所述临时关联对象为所述当前对象的强引用关联对象。2.如权利要求1所述的方法,其特征在于,所述通过所述多个入口函数创建所述当前对象所对应的临时关联对象之前,还包括:确定所述当前对象是否存在关联对象。3.如权利要求2所述的方法,其特征在于,所述确定所述当前对象是否存在关联对象包括:获取所述当前对象的结构体指针,并在所述结构体指针中查找目标变量的值;根据所述目标变量的值,确定所述当前对象是否存在关联对象。4.如权利要求1所述的方法,其特征在于,所述通过所述多个入口函数创建所述当前对象所对应的临时关联对象包括:获取所述当前对象所对应的关联对象值;判断所述关联对象值是否为空;若所述关联对象值不为空,则通过所述多个入口函数创建所述当前对象所对应的临时关联对象。5.如权利要求1所述的方法,其特征在于,所述获取当前对象包括:获取所有对象,并将所述所有对象加入对象消息栈;对所述对象消息栈中的所有对象进行出栈,获取所述当前对象。6.如权利要求5所述的方法,其特征在于,所述调用开源工具动态修改操作系统底层中用于实现关联对象的多个入口函数之前,还包括:获取所述操作系统底层的符号表系统,所述符号表系统包括所述所有对象,所述所有对象包括所述当前对象。7.一种关联对象追踪装置,其特征在于,所述装置包括:函数修改模块,用于调用开源工具动态修改操作系统底层中用于实现关联对象的多个入口函数;对象获取模块,用于获取当前对象,并在所述当前对象中加入强引用标识符;对象创建模块,用于通过所述多个入口函数创建所述当前对象所对应的临时关联对象;对象确定模块,用于从预设的关联对象映射表中查找与所述临时关联对象对应的键值,确定所述键值是否...
【专利技术属性】
技术研发人员:程春林,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。