CN116795671A - 代码检查方法及装置 - Google Patents
代码检查方法及装置 Download PDFInfo
- Publication number
- CN116795671A CN116795671A CN202210271262.6A CN202210271262A CN116795671A CN 116795671 A CN116795671 A CN 116795671A CN 202210271262 A CN202210271262 A CN 202210271262A CN 116795671 A CN116795671 A CN 116795671A
- Authority
- CN
- China
- Prior art keywords
- attribute
- checked
- inspected
- code
- preset protocol
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000007689 inspection Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 10
- 230000015556 catabolic process Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开关于一种代码检查方法及装置。该代码检查方法包括:在代码运行时,确定代码中的待检查对象;基于所述待检查对象的属性特征确定所述待检查对象是否遵守预设协议,其中,所述待检查对象的属性特征包括所述待检查对象的属性和子属性,子属性是所述待检查对象的属性的属性;当基于所述待检查对象的属性特征确定所述待检查对象不遵守所述预设协议时,输出代码检查结果,以提示所述待检查对象不遵守所述预设协议。根据本公开的代码检查方法及装置,可自动并且及时地检查出运行的代码的问题,降低了代码的崩溃率。
Description
技术领域
本公开涉及计算机技术领域。更具体地,本公开涉及一种代码检查方法及装置。
背景技术
客户端系统经常会遇到需要本地缓存数据的场景,以优化用户体验,以短视频为例,客户端从服务器请求到数据后,可缓存下来,在下一次启动请求超时时,可使用本地缓存的数据优化体验。客户端系统缓存对象需要遵守NSCoding协议,MJExtension中正式提供了这一协议的默认实现,可用宏MJCodingImplementation来实现。该默认实现要求对象、对象的属性所用到的类、以及递归属性的子属性所用到的类均需遵守NSCoding协议。否则在实际运行过程中,缓存和恢复数据的时候可能会发生崩溃。实际开发过程中,没有有效的机制保证新增的对象都实现了NSCoding协议。
相关技术中,在提交代码时,通过人工检查代码或者静态代码检查的方式检查代码来发现问题,之后通过建立相关文档描述这一问题,以通知开发人员需要注意这一问题;在线上遇到此类崩溃,通过崩溃日志排查是哪里出现的问题。可见,在提交代码时,依赖开发人员的经验,当流程较为繁琐时,容易由开发人员的疏忽,造成误判;在线上遇到此类崩溃,发现的时候线上崩溃已经发生,会带来线上损失。
发明内容
本公开的示例性实施例在于提供一种代码检查方法及装置,以至少解决相关技术中的代码检查的问题,也可不解决任何上述问题。
根据本公开的示例性实施例,提供一种代码检查方法,包括:在代码运行时,确定代码中的待检查对象;基于所述待检查对象的属性特征确定所述待检查对象是否遵守预设协议,其中,所述待检查对象的属性特征包括所述待检查对象的属性和子属性,子属性是所述待检查对象的属性的属性;当基于所述待检查对象的属性特征确定所述待检查对象不遵守所述预设协议时,输出代码检查结果,以提示所述待检查对象不遵守所述预设协议。
可选地,确定代码中的待检查对象,可包括:确定代码中的对象所属的类是否为预设类;当所述对象所属的类不是所述预设类时,将所述对象确定为所述待检查对象。
可选地,所述预设类可包括预设白名单中的类,预设白名单中可至少包括系统类、只读类。
可选地,基于所述待检查对象的属性特征确定所述待检查对象是否遵守所述预设协议,可包括:遍历所述待检查对象的属性,确定所述待检查对象的属性中是否存在不遵守所述预设协议的属性;当所述待检查对象的属性中存在不遵守所述预设协议的属性时,确定所述待检查对象不遵守所述预设协议。
可选地,基于所述待检查对象的属性特征确定所述待检查对象是否遵守所述预设协议,还可包括:当所述待检查对象的属性中不存在不遵守所述预设协议的属性时,遍历所述待检查对象的子属性,确定所述待检查对象的子属性中是否存在不遵守所述预设协议的子属性;当所述待检查对象的子属性中存在不遵守所述预设协议的属性时,确定所述待检查对象不遵守所述预设协议。
可选地,基于所述待检查对象的属性特征确定所述待检查对象是否遵守所述预设协议,还可包括:当所述待检查对象的子属性中不存在不遵守所述预设协议的属性时,确定所述待检查对象遵守所述预设协议。
可选地,所述代码检查方法还可包括:当确定所述待检查对象遵守所述预设协议时,保存代码检查结果。
可选地,所述预设协议可包括NSCoding协议、NSTyping协议中的至少一个。
根据本公开的示例性实施例,提供一种代码检查装置,包括:对象确定单元,被配置为在代码运行时,确定代码中的待检查对象;协议检查单元,被配置为基于所述待检查对象的属性特征确定所述待检查对象是否遵守预设协议,其中,所述待检查对象的属性特征包括所述待检查对象的属性和子属性,子属性是所述待检查对象的属性的属性;和结果输出单元,被配置为当基于所述待检查对象的属性特征确定所述待检查对象不遵守所述预设协议时,输出代码检查结果,以提示所述待检查对象不遵守所述预设协议。
可选地,对象确定单元可被配置为:确定代码中的对象所属的类是否为预设类;当所述对象所属的类不是所述预设类时,将所述对象确定为所述待检查对象。
可选地,所述预设类可包括预设白名单中的类,预设白名单中至少包括系统类、只读类。
可选地,协议检查单元可被配置为:遍历所述待检查对象的属性,确定所述待检查对象的属性中是否存在不遵守所述预设协议的属性;当所述待检查对象的属性中存在不遵守所述预设协议的属性时,确定所述待检查对象不遵守所述预设协议。
可选地,协议检查单元还可被配置为:当所述待检查对象的属性中不存在不遵守所述预设协议的属性时,遍历所述待检查对象的子属性,确定所述待检查对象的子属性中是否存在不遵守所述预设协议的子属性;当所述待检查对象的子属性中存在不遵守所述预设协议的属性时,确定所述待检查对象不遵守所述预设协议。
可选地,协议检查单元还可被配置为:当所述待检查对象的子属性中不存在不遵守所述预设协议的属性时,确定所述待检查对象遵守所述预设协议。
可选地,所述代码检查装置还可包括:保存单元,被配置为当确定所述待检查对象遵守所述预设协议时,保存代码检查结果。
可选地,所述预设协议可包括NSCoding协议、NSTyping协议中的至少一个。
根据本公开的示例性实施例,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现根据本公开的示例性实施例的代码检查方法。
根据本公开的示例性实施例,提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被电子设备的处理器执行时,使得电子设备执行根据本公开的示例性实施例的代码检查方法。
根据本公开的示例性实施例,提供一种计算机程序产品,包括计算机程序/指令,当所述计算机程序/指令被处理器执行时,实现根据本公开的示例性实施例的代码检查方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
自动及时地检查出运行的代码的问题,降低代码的崩溃率;
减少代码检查的人力成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1示出本公开的示例性实施例可以应用于其中的示例性系统架构100。
图2示出根据本公开的示例性实施例的代码检查方法的流程图。
图3示出根据本公开的示例性实施例的代码检查装置的框图。
图4是根据本公开的示例性实施例的电子设备400的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
本公开通过利用运行时刻(runtime),设计了自动检测对象是否遵守预设协议(例如,NSCoding协议、NSTyping协议)的方案,可在代码测试(或者应用测试)阶段自动执行检测程序,当遇到不遵守预设协议(例如,NSCoding协议、NSTyping协议)的对象时,自动弹窗提示。
下面,将参照图1至图4具体描述根据本公开的示例性实施例的代码检查方法及装置。
图1示出本公开的示例性实施例可以应用于其中的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息(例如,代码检查请求)等。终端设备101、102、103上可以安装有各种代码相关应用。终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中,其可以实现成多个软件或软件模块(例如,用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上所安装的代码相关应用提供支持的后台服务器。后台服务器可以对所接收到的代码检查请求等数据进行解析、存储等处理,并将检查结果反馈至终端设备101、102、103。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如,用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本公开实施例所提供的代码检查方法通常由终端设备执行,但是也可由服务器执行,或者也可以由终端设备和服务器协作执行。相应地,代码检查装置可设置在终端设备中、服务器中或者设置在终端设备和服务器两者中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器,本公开对此并无限制。
图2示出根据本公开的示例性实施例的代码检查方法的流程图。
参照图2,在步骤S201,在代码运行时,确定代码中的待检查对象。
在本公开的示例性实施例中,在确定代码中的待检查对象时,可首先确定代码中的对象所属的类是否为预设类,然后当所述对象所属的类不是所述预设类时,将所述对象确定为所述待检查对象(即,指定对象),以对指定对象进行检查。例如,所述待检查对象可属于缓存的类。
在本公开的示例性实施例中,所述预设类可包括预设白名单中的类,预设白名单中至少包括系统类、只读类,从而可不检查白名单中的类的对象。应理解,所述预设类可以由用户预先设置,这里列举的预设类仅为示例,而不用于限制本公开。
在步骤S202,基于所述待检查对象的属性特征确定所述待检查对象是否遵守预设协议。可利用苹果客户端开发语言Objective-C的动态性,在代码运行时检索待检查的对象的所有属性及其子属性。这里,所述待检查对象的属性特征可包括所述待检查对象的属性和子属性,子属性可以是所述待检查对象的属性的属性。
在本公开的示例性实施例中,所述预设协议可包括NSCoding协议、NSTyping协议中的至少一个。此外,所述预设协议还可以是其他协议,本公开对此不进行限制。可通过例如但不限于conformsToProtol方法判断指定对象是否遵守NSCoding协议,本公开对对象所遵守的协议的判定方法不进行限制。
在本公开的示例性实施例中,在基于所述待检查对象的属性特征确定所述待检查对象是否遵守所述预设协议时,可首先遍历所述待检查对象的属性,确定所述待检查对象的属性中是否存在不遵守所述预设协议的属性,然后当所述待检查对象的属性中存在不遵守所述预设协议的属性时,确定所述待检查对象不遵守所述预设协议,从而得到不遵守所述预设协议的待检查对象。
在本公开的示例性实施例中,在基于所述待检查对象的属性特征确定所述待检查对象是否遵守所述预设协议,还可当所述待检查对象的属性中不存在不遵守所述预设协议的属性时,遍历所述待检查对象的子属性,确定所述待检查对象的子属性中是否存在不遵守所述预设协议的子属性,并且当所述待检查对象的子属性中存在不遵守所述预设协议的属性时,确定所述待检查对象不遵守所述预设协议,从而提高代码检查的准确性。
在本公开的示例性实施例中,在基于所述待检查对象的属性特征确定所述待检查对象是否遵守所述预设协议时,还可当所述待检查对象的子属性中不存在不遵守所述预设协议的属性时,确定所述待检查对象遵守所述预设协议,从而得到遵守所述预设协议的待检查对象。
在本公开的示例性实施例中,还可当确定所述待检查对象遵守所述预设协议时,保存代码检查结果,从而在后续重复对该对象进行检查时快速返回检测结果。可在步骤S201之前,初始化创建保存代码检查结果的容器。
在步骤S203,当基于所述待检查对象的属性特征确定所述待检查对象不遵守所述预设协议时,输出代码检查结果,以提示所述待检查对象不遵守所述预设协议。
此外,在本公开的示例性实施例中,还可基于线上日志排查代码的每个版本有没有引入疑似问题,例如,不遵守预设协议的问题。
根据本公开的示例性实施例的代码检查方法,通过在代码运行时遍历代码中的待检查对象、每个待检查对象的属性和/或子属性,并且在检查到不遵守所述预设协议的待检查对象时输出代码检查结果,从而可自动并且及时地检查出运行的代码的问题,降低了代码的崩溃率。
以上已经结合图2对根据本公开的示例性实施例的代码检查方法进行了描述。在下文中,将参照图3对根据本公开的示例性实施例的代码检查装置及其单元进行描述。
图3示出根据本公开的示例性实施例的代码检查装置的框图。
参照图3,代码检查装置包括对象确定单元31、协议检查单元32和结果输出单元33。
对象确定单元31被配置为在代码运行时,确定代码中的待检查对象。
在本公开的示例性实施例中,对象确定单元31可被配置为:确定代码中的对象所属的类是否为预设类;当所述对象所属的类不是所述预设类时,将所述对象确定为所述待检查对象。
协议检查单元32被配置为基于所述待检查对象的属性特征确定所述待检查对象是否遵守预设协议。这里,所述待检查对象的属性特征包括所述待检查对象的属性和子属性,子属性是所述待检查对象的属性的属性。
在本公开的示例性实施例中,所述预设类包括预设白名单中的类,预设白名单中至少包括系统类、只读类。
在本公开的示例性实施例中,协议检查单元32可被配置为:遍历所述待检查对象的属性,确定所述待检查对象的属性中是否存在不遵守所述预设协议的属性;当所述待检查对象的属性中存在不遵守所述预设协议的属性时,确定所述待检查对象不遵守所述预设协议。
在本公开的示例性实施例中,协议检查单元32还可被配置为:当所述待检查对象的属性中不存在不遵守所述预设协议的属性时,遍历所述待检查对象的子属性,确定所述待检查对象的子属性中是否存在不遵守所述预设协议的子属性;当所述待检查对象的子属性中存在不遵守所述预设协议的属性时,确定所述待检查对象不遵守所述预设协议。
在本公开的示例性实施例中,协议检查单元32还可被配置为:当所述待检查对象的子属性中不存在不遵守所述预设协议的属性时,确定所述待检查对象遵守所述预设协议。
结果输出单元33被配置为当基于所述待检查对象的属性特征确定所述待检查对象不遵守所述预设协议时,输出代码检查结果,以提示所述待检查对象不遵守所述预设协议。
在本公开的示例性实施例中,代码检查装置还可包括保存单元,被配置为当确定所述待检查对象遵守所述预设协议时,保存代码检查结果。
在本公开的示例性实施例中,所述预设协议包括NSCoding协议、NSTyping协议中的至少一个。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
以上已经结合图3对根据本公开的示例性实施例的代码检查装置进行了描述。接下来,结合图4对根据本公开的示例性实施例的电子设备进行描述。
图4是根据本公开的示例性实施例的电子设备400的框图。
参照图4,电子设备400包括至少一个存储器401和至少一个处理器402,所述至少一个存储器401中存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个处理器402执行时,执行根据本公开的示例性实施例的代码检查的方法。
在本公开的示例性实施例中,电子设备400可以是PC计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,电子设备400并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备400还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
在电子设备400中,处理器402可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
处理器402可运行存储在存储器401中的指令或代码,其中,存储器401还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
存储器401可与处理器402集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器401可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器401和处理器402可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器402能够读取存储在存储器中的文件。
此外,电子设备400还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备400的所有组件可经由总线和/或网络而彼此连接。
根据本公开的示例性实施例,还提供一种包括指令的计算机可读存储介质,例如包括指令的存储器401,上述指令可由装置400的处理器402执行以完成上述方法。可选地,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
根据本公开的示例性实施例,还可提供一种计算机程序产品,该计算机程序产品包括计算机程序/指令,当所述计算机程序/指令被处理器执行时,实现根据本公开的示例性实施例的代码检查的方法。
以上已参照图1至图4描述了根据本公开的示例性实施例的代码检查方法及装置。然而,应该理解的是:图3中所示的代码检查装置及其单元可分别被配置为执行特定功能的软件、硬件、固件或上述项的任意组合,图4中所示的电子设备并不限于包括以上示出的组件,而是可根据需要增加或删除一些组件,并且以上组件也可被组合。
根据本公开的代码检查方法及装置,通过在代码运行时,首先确定代码中的待检查对象,基于所述待检查对象的属性特征确定所述待检查对象是否遵守预设协议,其中,所述待检查对象的属性特征包括所述待检查对象的属性和子属性,子属性是所述待检查对象的属性的属性,然后当基于所述待检查对象的属性特征确定所述待检查对象不遵守所述预设协议时,输出代码检查结果,以提示所述待检查对象不遵守所述预设协议,从而自动及时地检查出运行的代码的问题,降低代码的崩溃率。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种代码检查方法,其特征在于,包括:
在代码运行时,确定代码中的待检查对象;
基于所述待检查对象的属性特征确定所述待检查对象是否遵守预设协议,其中,所述待检查对象的属性特征包括所述待检查对象的属性和子属性,子属性是所述待检查对象的属性的属性;
当基于所述待检查对象的属性特征确定所述待检查对象不遵守所述预设协议时,输出代码检查结果,以提示所述待检查对象不遵守所述预设协议。
2.根据权利要求1所述的代码检查方法,其特征在于,基于所述待检查对象的属性特征确定所述待检查对象是否遵守所述预设协议,包括:
遍历所述待检查对象的属性,确定所述待检查对象的属性中是否存在不遵守所述预设协议的属性;
当所述待检查对象的属性中存在不遵守所述预设协议的属性时,确定所述待检查对象不遵守所述预设协议。
3.根据权利要求2所述的代码检查方法,其特征在于,基于所述待检查对象的属性特征确定所述待检查对象是否遵守所述预设协议,还包括:
当所述待检查对象的属性中不存在不遵守所述预设协议的属性时,遍历所述待检查对象的子属性,确定所述待检查对象的子属性中是否存在不遵守所述预设协议的子属性;
当所述待检查对象的子属性中存在不遵守所述预设协议的属性时,确定所述待检查对象不遵守所述预设协议。
4.根据权利要求3所述的代码检查方法,其特征在于,基于所述待检查对象的属性特征确定所述待检查对象是否遵守所述预设协议,还包括:
当所述待检查对象的子属性中不存在不遵守所述预设协议的属性时,确定所述待检查对象遵守所述预设协议。
5.根据权利要求1所述的代码检查方法,其特征在于,还包括:
当确定所述待检查对象遵守所述预设协议时,保存代码检查结果。
6.根据权利要求1所述的代码检查方法,其特征在于,所述预设协议包括NSCoding协议、NSTyping协议中的至少一个。
7.一种代码检查装置,其特征在于,包括:
对象确定单元,被配置为在代码运行时,确定代码中的待检查对象;
协议检查单元,被配置为基于所述待检查对象的属性特征确定所述待检查对象是否遵守预设协议,其中,所述待检查对象的属性特征包括所述待检查对象的属性和子属性,子属性是所述待检查对象的属性的属性;和
结果输出单元,被配置为当基于所述待检查对象的属性特征确定所述待检查对象不遵守所述预设协议时,输出代码检查结果,以提示所述待检查对象不遵守所述预设协议。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的代码检查方法。
9.一种计算机可读存储介质,存储有计算机程序,其特征在于,当所述计算机程序被电子设备的处理器执行时,使得电子设备执行如权利要求1至6中任一项所述的代码检查方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,当所述计算机程序被处理器执行时,实现权利要求1至6中任一项所述的代码检查方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210271262.6A CN116795671A (zh) | 2022-03-18 | 2022-03-18 | 代码检查方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210271262.6A CN116795671A (zh) | 2022-03-18 | 2022-03-18 | 代码检查方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116795671A true CN116795671A (zh) | 2023-09-22 |
Family
ID=88045544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210271262.6A Pending CN116795671A (zh) | 2022-03-18 | 2022-03-18 | 代码检查方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116795671A (zh) |
-
2022
- 2022-03-18 CN CN202210271262.6A patent/CN116795671A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10613970B1 (en) | Method and system for managing deployment of software application components based on software performance data | |
CN111125107A (zh) | 数据处理方法、装置、电子设备和介质 | |
CN111666201A (zh) | 回归测试方法、装置、介质及电子设备 | |
CN112817831A (zh) | 应用性能监测方法、装置、计算机系统和可读存储介质 | |
CN113900834A (zh) | 基于物联网技术的数据处理方法、装置、设备及存储介质 | |
CN113495825A (zh) | 线路告警的处理方法、装置、电子设备及可读存储介质 | |
CN113176907A (zh) | 接口数据调用方法、装置、计算机系统及可读存储介质 | |
CN110347601B (zh) | 脚本进程的中断处理方法和装置 | |
CN111241048A (zh) | 一种web终端日志管理方法、装置、介质及电子设备 | |
CN110825622A (zh) | 软件测试方法、装置、设备和计算机可读介质 | |
CN116360937A (zh) | 任务调度方法、装置、设备及存储介质 | |
CN111679885B (zh) | 确定虚拟机漂移方法、装置、介质及电子设备 | |
CN116795671A (zh) | 代码检查方法及装置 | |
CN112506781B (zh) | 测试监控方法、装置、电子设备、存储介质及程序产品 | |
CN114691527A (zh) | 单元测试案例生成方法、装置、设备、介质和程序产品 | |
CN112395194B (zh) | 一种接入测试平台的方法和装置 | |
CN114840429A (zh) | 识别版本冲突的方法、装置、设备、介质和程序产品 | |
CN111737129B (zh) | 服务控制方法、装置、计算机可读介质及电子设备 | |
CN114510334A (zh) | 类实例的调用方法、装置、电子设备及自动驾驶车辆 | |
CN113392010A (zh) | 公共组件测试方法、装置、电子设备及存储介质 | |
CN114138397A (zh) | 页面显示方法、装置、电子设备及存储介质 | |
CN112988604A (zh) | 对象测试方法、测试系统、电子设备及可读存储介质 | |
CN111859403A (zh) | 依赖关系漏洞的确定方法、装置、电子设备及存储介质 | |
CN113254325A (zh) | 测试用例的处理方法和装置 | |
CN113360417B (zh) | 测试方法、会话修改器、电子设备以及介质 |
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 |