Swift代码的处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:33285518 阅读:13 留言:0更新日期:2022-04-30 23:51
本发明专利技术实施例提供了一种Swift代码的处理方法、装置、电子设备及存储介质,所述方法包括:通过在代码编译期间,从应用工程文件的Swift代码文件中获取通用Swift代码对应的语法字典,然后根据数据模板将通用Swift代码转换为特定的模板代码,实现对应用工程文件中的通用Swift代码的替换,有效减少了代码编写的工作量,而且能够避免开发人员手写代码导致的类型解析错误问题,保证了应用程序运行的稳定性。性。性。

【技术实现步骤摘要】
Swift代码的处理方法、装置、电子设备及存储介质


[0001]本专利技术涉及代码处理
,特别是涉及一种Swift代码的处理方法、一种Swift代码的处理装置、一种电子设备以及一种计算机可读存储介质。

技术介绍

[0002]在应用程序工程项目的开发与维护过程中,随着工程项目的不断迭代和功能的增加,工程项目所对应的源代码数据会随着时间的推移增加到一个较大的体积。其中,对于工程项目中涉及通用代码,如模型初始化、列表模型初始化等相关源代码依然需要开发人员全部手动编写,工作重复性高,而且在手动编写的过程中,容易由于类型不匹配等问题导致应用程序崩溃,进一步给源代码的维护增加了成本。

技术实现思路

[0003]本专利技术实施例是提供一种Swift代码的处理方法、装置、电子设备以及计算机可读存储介质,以解决或部分解决相关技术中无法对源代码文件中通用代码进行处理导致源代码开发、维护效率低下的问题。
[0004]本专利技术实施例公开了一种Swift代码的处理方法,包括:
[0005]获取初始应用工程文件,所述初始应用工程文件包括Swift代码文件,所述Swift代码文件包括通用Swift代码;
[0006]响应于针对所述初始应用工程文件的编译,获取针对所述Swift代码文件的数据模板,并从所述Swift代码文件获取与所述通用Swift代码对应的数据模型,所述数据模型包括与所述通用Swift代码对应的若干个语法字典;
[0007]根据所述数据模板与所述若干个语法字典,生成针对所述通用Swift代码的目标Swift代码;
[0008]将所述目标Swift代码替换所述Swift代码文件中的通用Swift代码,生成目标应用工程文件。
[0009]可选地,所述从所述Swift代码文件获取与所述通用Swift代码对应的数据模型,包括:
[0010]获取所述Swift代码文件的文件标识,以及针对所述Swift代码文件的代码转换函数;
[0011]将所述文件标识传入所述代码转换函数,提取所述Swift代码文件中的通用Swift代码,并将所述通用Swift代码转换为与所述Swift代码文件对应的数据模型。
[0012]可选地,所述将所述通用Swift代码转换为与所述Swift代码文件对应的数据模型,包括:
[0013]从所述通用Swift代码中提取数据键以及与所述数据键对应的数据值;
[0014]采用各个所述数据键以及对应的数据值,构建与所述Swift代码文件对应的数据模型。
[0015]可选地,所述根据所述数据模板与所述若干个语法字典,生成针对所述通用Swift代码的目标Swift代码,包括:
[0016]若所述数据模型包括类型继承关系,判定所述数据模型为待处理的数据结构,则根据所述数据模板与所述若干个语法字典,生成针对所述通用Swift代码的目标Swift代码。
[0017]可选地,所述根据所述数据模板与所述若干个语法字典,生成针对所述通用Swift代码的目标Swift代码,包括:
[0018]遍历所述数据模型,获取与变量关联的变量Key;
[0019]从所述数据模型中提取与所述变量Key对应的语法字典,所述语法字典中包括与所述变量Key对应的变量信息;
[0020]将各个所述语法字典的变量信息添加至所述数据模板中,生成针对所述通用Swift代码的目标Swift代码。
[0021]可选地,所述变量信息至少包括字段类型以及字段名称,所述将各个所述语法字典的变量信息添加至所述数据模板中,生成针对所述通用Swift代码的目标Swift代码,包括:
[0022]将各个所述语法字典的字段类型与字段名称添加至所述数据模板中,生成针对所述通用Swift代码的目标Swift代码。
[0023]可选地,还包括:
[0024]对所述目标应用工程文件进行编译,生成与所述初始应用工程文件对应的机器语言文件。
[0025]本专利技术实施例还公开了一种Swift代码的处理装置,包括:
[0026]工程文件获取模块,用于获取初始应用工程文件,所述初始应用工程文件包括Swift代码文件,所述Swift代码文件包括通用Swift代码;
[0027]数据获取模块,用于响应于针对所述初始应用工程文件的编译,获取针对所述Swift代码文件的数据模板,并从所述Swift代码文件获取与所述通用Swift代码对应的数据模型,所述数据模型包括与所述通用Swift代码对应的若干个语法字典;
[0028]代码生成模块,用于根据所述数据模板与所述若干个语法字典,生成针对所述通用Swift代码的目标Swift代码;
[0029]工程文件生成模块,用于将所述目标Swift代码替换所述Swift代码文件中的通用Swift代码,生成目标应用工程文件。
[0030]可选地,所述数据获取模块包括:
[0031]函数获取子模块,用于获取所述Swift代码文件的文件标识,以及针对所述Swift代码文件的代码转换函数;
[0032]数据模型生成子模块,用于将所述文件标识传入所述代码转换函数,提取所述Swift代码文件中的通用Swift代码,并将所述通用Swift代码转换为与所述Swift代码文件对应的数据模型。
[0033]可选地,所述数据模型生成子模块具体用于:
[0034]从所述通用Swift代码中提取数据键以及与所述数据键对应的数据值;
[0035]采用各个所述数据键以及对应的数据值,构建与所述Swift代码文件对应的数据
模型。
[0036]可选地,所述代码生成模块具体用于:
[0037]若所述数据模型包括类型继承关系,判定所述数据模型为待处理的数据结构,则根据所述数据模板与所述若干个语法字典,生成针对所述通用Swift代码的目标Swift代码。
[0038]可选地,所述代码生成模块包括:
[0039]变量Key获取子模块,用于遍历所述数据模型,获取与变量关联的变量Key;
[0040]语法字典提取子模块,用于从所述数据模型中提取与所述变量Key对应的语法字典,所述语法字典中包括与所述变量Key对应的变量信息;
[0041]代码生成子模块,用于将各个所述语法字典的变量信息添加至所述数据模板中,生成针对所述通用Swift代码的目标Swift代码。
[0042]可选地,所述变量信息至少包括字段类型以及字段名称,所述代码生成子模块具体用于:
[0043]将各个所述语法字典的字段类型与字段名称添加至所述数据模板中,生成针对所述通用Swift代码的目标Swift代码。
[0044]可选地,还包括:
[0045]编译模块,用于对所述目标应用工程文件进行编译,生成与所述初始应用工程文件对应的机器语言文件。
[0046]本专利技术实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Swift代码的处理方法,其特征在于,包括:获取初始应用工程文件,所述初始应用工程文件包括Swift代码文件,所述Swift代码文件包括通用Swift代码;响应于针对所述初始应用工程文件的编译,获取针对所述Swift代码文件的数据模板,并从所述Swift代码文件获取与所述通用Swift代码对应的数据模型,所述数据模型包括与所述通用Swift代码对应的若干个语法字典;根据所述数据模板与所述若干个语法字典,生成针对所述通用Swift代码的目标Swift代码;将所述目标Swift代码替换所述Swift代码文件中的通用Swift代码,生成目标应用工程文件。2.根据权利要求1所述的方法,其特征在于,所述从所述Swift代码文件获取与所述通用Swift代码对应的数据模型,包括:获取所述Swift代码文件的文件标识,以及针对所述Swift代码文件的代码转换函数;将所述文件标识传入所述代码转换函数,提取所述Swift代码文件中的通用Swift代码,并将所述通用Swift代码转换为与所述Swift代码文件对应的数据模型。3.根据权利要求2所述的方法,其特征在于,所述将所述通用Swift代码转换为与所述Swift代码文件对应的数据模型,包括:从所述通用Swift代码中提取数据键以及与所述数据键对应的数据值;采用各个所述数据键以及对应的数据值,构建与所述Swift代码文件对应的数据模型。4.根据权利要求1或2或3任一所述的方法,其特征在于,所述根据所述数据模板与所述若干个语法字典,生成针对所述通用Swift代码的目标Swift代码,包括:若所述数据模型包括类型继承关系,判定所述数据模型为待处理的数据结构,则根据所述数据模板与所述若干个语法字典,生成针对所述通用Swift代码的目标Swift代码。5.根据权利要求1所述的方法,其特征在于,所述根据所述数据模板与所述若干个语法字典,生成针对所述通用Swift代码的目标Swift代码,包括:遍历所述数据模型,获取与变量关联的变量Key;从所述数据模型中提取与所述变量...

【专利技术属性】
技术研发人员:蒋演彭飞邓竹立
申请(专利权)人:北京五八信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1