CN113608728B - 一种基于Xcode的自动化懒加载方法及存储介质 - Google Patents
一种基于Xcode的自动化懒加载方法及存储介质 Download PDFInfo
- Publication number
- CN113608728B CN113608728B CN202110907422.7A CN202110907422A CN113608728B CN 113608728 B CN113608728 B CN 113608728B CN 202110907422 A CN202110907422 A CN 202110907422A CN 113608728 B CN113608728 B CN 113608728B
- Authority
- CN
- China
- Prior art keywords
- lazy loading
- attribute
- interval
- xcode
- lazy
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供的一种基于Xcode的自动化懒加载方法及存储介质,通过接收Xcode传输的数据信息,并根据所述选中区间的属性解析出属性数据;根据所述属性数据生成相应的懒加载代码;计算插入位置,并根据计算得到的插入位置插入所述懒加载代码,完成自动化懒加载,利用属性数据生成的是封装好的懒加载代码块,并统一存放在规定区域,方便查看代码,和修改代码,降低了维护难度和时间,使用自动化的手段创建懒加载代码块,速度快、节省了编码时间,节约了开发成本,自动化生成的代码,减少了人为因素导致的低级问题,减少了后期维护成本。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于Xcode的自动化懒加载方法及存储介质。
背景技术
在iOS和Mac应用开发中,开发者一般需要创建大量属性和字段,这些属性和字段负责记录状态、保存数据的修改或用来定义控件。现阶段一般有两种属性创建手段,第一种是直接创建:在需要的地方直接创建并生成该属性,而这往往会令代码可读性降低,增大修改维护成本;第二种:这些属性被封装成一个个懒加载的代码块,在需要的时候被调用,相对与第一种方法,这种方法在可阅读性上有所增强,但是大量手写重复的懒加载代码,容易出错。另外,上述两种方法还存在以下缺点:
1、属性创建代码散落在各个地方,可阅读性大大降低,维护成本增加。
2、如果手动写懒加载代码块,那么将耗费很多时间去做这个重复事情,增加了开发成本。
3、大量相同规律的代码,很容易出现视觉性疲劳,从而导致低级错误的发生,一个小小的字符错误,都很可能会造成整个程序的奔溃。
发明内容
(一)要解决的技术问题
为了解决现有技术的上述问题,本发明提供一种基于Xcode的自动化懒加载方法及存储介质,能够提高代码的可阅读性,便于查看和修改,降低维护难度和时间,并节省编码时间和开发成本。
(二)技术方案
为了达到上述目的,本发明采用的一种技术方案为:
一种基于Xcode的自动化懒加载方法,其特征在于,包括步骤:
S1、接收Xcode传输的数据信息,并根据所述选中区间的属性解析出属性数据;
S2、根据所述属性数据生成相应的懒加载代码;
S3、计算插入位置,并根据计算得到的插入位置插入所述懒加载代码,完成自动化懒加载。
为了达到上述目的,本发明采用的另一种技术方案为:
一种基于Xcode的自动化懒加载计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于Xcode的自动化懒加载方法。
(三)有益效果
本发明的有益效果在于:通过接收Xcode传输的数据信息,并根据所述选中区间的属性解析出属性数据;根据所述属性数据生成相应的懒加载代码;计算插入位置,并根据计算得到的插入位置插入所述懒加载代码,完成自动化懒加载,利用属性数据生成的是封装好的懒加载代码块,并统一存放在规定区域,方便查看代码,和修改代码,降低了维护难度和时间,使用自动化的手段创建懒加载代码块,速度快、节省了编码时间,节约了开发成本,自动化生成的代码,减少了人为因素导致的低级问题,减少了后期维护成本。
附图说明
图1为本发明实施例的基于Xcode的自动化懒加载方法流程图。
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
实施例一
请参照图1,一种基于Xcode的自动化懒加载方法,包括步骤:
S1、接收Xcode传输的数据信息,并根据所述选中区间的属性解析出属性数据;
所述数据信息包括选中区间和文本信息;
所述文本信息包括定义文件的文本信息和实现文件的文本信息。
步骤S1具体为:
接收Xcode传输的数据信息,并根据所述选中区间的属性解析出属性数据;
所述属性数据包括修饰符、类型和变量名称。
S2、根据所述属性数据生成相应的懒加载代码;
S3、计算插入位置,并根据计算得到的插入位置插入所述懒加载代码,完成自动化懒加载。
步骤S3包括:
S31、根据接收的定义文件的文本信息和实现文件的文本信息,获取属性定义区间数组和属性实现区间数组的所有范围区间;
S32、将所述选中区间与属性定义区间数组的所有范围区间取交集,得到选中区间中目标属性所关联的目标属性定义区间数组;
S33、根据所述目标属性定义区间数组和属性实现区间数据的所有范围区间,比对得到所述目标属性关联的所有目标属性实现区间数组;
S34、在每个目标属性实现区间数组中判断是否存在懒加载标识符,若否,则在该区间末尾添加该懒加载标识符;
S35、在每个懒加载标识符后插入所述懒加载代码,完成自动化懒加载。
实施例二
本实施例和实施例一的区别在于,本实施例将结合具体的应用场景进一步说明上述基于Xcode的自动化懒加载方法是如何实现的:
1、开发者使用部分:
1.1、将上述基于Xcode的自动化懒加载方法步骤集成于插件中,在Mac系统中安装该插件,授权该插件的使用;
1.2、在Xcode编译器中给插件设置一个自定义快捷键,以便快速调起插件;
1.3、使用鼠标选中想要生成懒加载的属性定义代码(既选中区间);
1.4、按下已经设定好的快捷键,调用该插件;
1.5、Xcode获取到鼠标选中区域的数据信息,并传输到该插件中;
2、懒加载代码生成部分
2.1、接收Xcode传输的数据信息,并根据所述选中区间的属性解析出属性数据;
所述数据信息包括选中区间和文本信息;
所述文本信息包括定义文件的文本信息和实现文件的文本信息。
所述属性数据包括修饰符、类型和变量名称。
2.2、根据所述属性数据生成相应的懒加载代码;
2.3、计算插入位置,并根据计算得到的插入位置插入所述懒加载代码,完成自动化懒加载,具体过程如下:
根据接收的定义文件的文本信息和实现文件的文本信息,获取属性定义区间数组和属性实现区间数组的所有范围区间;
将所述选中区间与属性定义区间数组的所有范围区间取交集,得到选中区间中目标属性所关联的目标属性定义区间数组;
根据所述目标属性定义区间数组和属性实现区间数据的所有范围区间,比对得到所述目标属性关联的所有目标属性实现区间数组;
在每个目标属性实现区间数组中判断是否存在懒加载标识符,若否,则在该区间末尾添加该懒加载标识符;
在每个懒加载标识符后插入所述懒加载代码,完成自动化懒加载。
实施例三
一种基于Xcode的自动化懒加载计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如实施例一中所述的基于Xcode的自动化懒加载方法的步骤。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (3)
1.一种基于Xcode的自动化懒加载方法,其特征在于,包括步骤:
S1、接收Xcode传输的数据信息,所述数据信息包括选中区间和文本信息,所述文本信息包括定义文件的文本信息和实现文件的文本信息,根据所述选中区间的属性解析出属性数据;
S2、根据所述属性数据生成相应的懒加载代码;
S3、计算插入位置,并根据计算得到的插入位置插入所述懒加载代码,完成自动化懒加载;
步骤S3包括:
S31、根据接收的定义文件的文本信息和实现文件的文本信息,获取属性定义区间数组和属性实现区间数组的所有范围区间;
S32、将所述选中区间与属性定义区间数组的所有范围区间取交集,得到选中区间中目标属性所关联的目标属性定义区间数组;
S33、根据所述目标属性定义区间数组和属性实现区间数据的所有范围区间,比对得到所述目标属性关联的所有目标属性实现区间数组;
S34、在每个目标属性实现区间数组中判断是否存在懒加载标识符,若否,则在该区间末尾添加该懒加载标识符;
S35、在每个懒加载标识符后插入所述懒加载代码,完成自动化懒加载。
2.根据权利要求1所述的基于Xcode的自动化懒加载方法,其特征在于,步骤S1具体为:
所述属性数据包括修饰符、类型和变量名称。
3.一种基于Xcode的自动化懒加载计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至2任一项所述的基于Xcode的自动化懒加载方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110907422.7A CN113608728B (zh) | 2021-08-09 | 2021-08-09 | 一种基于Xcode的自动化懒加载方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110907422.7A CN113608728B (zh) | 2021-08-09 | 2021-08-09 | 一种基于Xcode的自动化懒加载方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113608728A CN113608728A (zh) | 2021-11-05 |
CN113608728B true CN113608728B (zh) | 2023-08-01 |
Family
ID=78307635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110907422.7A Active CN113608728B (zh) | 2021-08-09 | 2021-08-09 | 一种基于Xcode的自动化懒加载方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113608728B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111259284A (zh) * | 2018-11-30 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 页面懒加载的方法和装置、存储介质和处理器 |
CN112395535A (zh) * | 2019-08-15 | 2021-02-23 | 腾讯科技(深圳)有限公司 | 图片的懒加载方法及装置、介质和电子设备 |
CN112631676A (zh) * | 2020-12-18 | 2021-04-09 | 平安普惠企业管理有限公司 | 代码动态加载方法、装置及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101462114B1 (ko) * | 2013-03-28 | 2014-11-17 | 네이버 주식회사 | 동기식 스크립트 지연 로딩 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체 |
-
2021
- 2021-08-09 CN CN202110907422.7A patent/CN113608728B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111259284A (zh) * | 2018-11-30 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 页面懒加载的方法和装置、存储介质和处理器 |
CN112395535A (zh) * | 2019-08-15 | 2021-02-23 | 腾讯科技(深圳)有限公司 | 图片的懒加载方法及装置、介质和电子设备 |
CN112631676A (zh) * | 2020-12-18 | 2021-04-09 | 平安普惠企业管理有限公司 | 代码动态加载方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113608728A (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7509655B2 (en) | Integration of workflow and rules | |
US7150008B2 (en) | Non-invasive rule-based binary analysis of software assemblies | |
CN109670053B (zh) | 数据对象映射方法、装置、设备和计算机可读存储介质 | |
CN107239392B (zh) | 一种测试方法、装置、终端及存储介质 | |
CN104391797A (zh) | Gui控件的识别方法和装置 | |
US20170220613A1 (en) | Systems and methods for database orientation transformation | |
CN107608873B (zh) | 软件测试方法和系统及测试平台 | |
CN109933521A (zh) | 基于bdd的自动化测试方法、装置、计算机设备及存储介质 | |
CN104049974A (zh) | 控件动态组装方法和系统 | |
CN115952758A (zh) | 芯片验证方法、装置、电子设备及存储介质 | |
CN112181854A (zh) | 一种生成流程自动化脚本的方法、装置、设备及存储介质 | |
CN107220043B (zh) | 一种使用wpf界面生成报表的方法及报表引擎 | |
CN113608728B (zh) | 一种基于Xcode的自动化懒加载方法及存储介质 | |
CN108446224B (zh) | 移动端上应用程序的性能分析方法、存储介质 | |
CN113485708A (zh) | 基于Sketch的跨平台界面开发方法和系统、计算机设备和介质 | |
CN116974581A (zh) | 代码生成方法、装置、电子设备和存储介质 | |
CN113688031B (zh) | 一种基于字节码增强技术的测试定位方法 | |
CN109240923A (zh) | 接口测试脚本的生成方法及计算机可读存储介质 | |
CN114416547A (zh) | 基于测试用例的测试方法 | |
CN105553759A (zh) | 一种智能卡与移动终端一致性测试方法及装置 | |
CN115292418B (zh) | 跨系统业务流程自动化处理方法及系统 | |
US7580962B1 (en) | Automatic code generation for co-simulation interfaces | |
CN111209200B (zh) | 用于Python软件的自动记录和复现方法、系统及存储介质 | |
CN110018813A (zh) | 一种Toast设计方法、存储介质、电子设备及系统 | |
CN112466376B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |