CN111651194B - 基于iOS的适配方法及装置 - Google Patents

基于iOS的适配方法及装置 Download PDF

Info

Publication number
CN111651194B
CN111651194B CN202010507771.5A CN202010507771A CN111651194B CN 111651194 B CN111651194 B CN 111651194B CN 202010507771 A CN202010507771 A CN 202010507771A CN 111651194 B CN111651194 B CN 111651194B
Authority
CN
China
Prior art keywords
classification
class
preset
newly created
version
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
Application number
CN202010507771.5A
Other languages
English (en)
Other versions
CN111651194A (zh
Inventor
姜苏珈
白斯琴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BOE Technology Group Co Ltd
Original Assignee
BOE Technology Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BOE Technology Group Co Ltd filed Critical BOE Technology Group Co Ltd
Priority to CN202010507771.5A priority Critical patent/CN111651194B/zh
Publication of CN111651194A publication Critical patent/CN111651194A/zh
Application granted granted Critical
Publication of CN111651194B publication Critical patent/CN111651194B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于iOS的适配方法及装置,涉及计算机技术领域,主要目的在于在不删除SceneDelegate的情况下适配基于Xcode11创建的项目。本发明主要的技术方案为:在新创建项目的配置文件中,设置配置入口类,所述配置入口类中设置有第一分类与第一预设类绑定、第二分类与第二预设类绑定,用于处理所述第一预设类与第二预设类中的事件数据;获取利用所述配置入口类开发的所述新创建项目;在执行所述新创建项目时,判断当前iOS的版本;当所述版本低于预设版本时,基于第一分类处理所述新创建项目的事件数据;当所述版本为预设版本及以上时,基于所述第二分类处理所述新创建项目的事件数据。

Description

基于iOS的适配方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于iOS的适配方法及装置。
背景技术
Xcode是运行在操作系统Mac OS X上的集成开发工具,具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成。在苹果公司推出了移动终端操作系统iOS13之后,也将Xcode的版本更新到了Xcode11。
在Xcode11之前,创建新项目时会生成一个UIApplication的实例AppDelegate类用来负责处理App生命周期和UI生命周期。而在Xcode11中,将AppDelegate的功能拆成了AppDelegate和SceneDelegate,改变了传统的AppDelegate里面的界面处理初始化过程,特别是在iOS13以及之后的系统,AppDeleate的职责是处理App的生命周期,而UI的生命周期是放到了SceneDelegate来处理。这就使得将基于Xcode11创建的项目,运行在使用iOS13以下系统的设备中时,由于项目中多出了一个SceneDelegate,导致出现无法正常显示窗口内容、黑屏等问题。为此,现有的适配方式是将新建项目中的SceneDelegate直接删除,以此确保该项目能够正常运行在使用iOS13以下系统的设备中。然而,这种删除SceneDelegate的适配方式有悖于苹果公司更新iOS13、Xcode11的目的,对于新建项目的使用、更新、维护都有可能造成不可逆的影响。
发明内容
鉴于上述问题,本发明提出了一种基于iOS的适配方法及装置,主要目的在于在不删除SceneDelegate的情况下适配基于Xcode11创建的项目。
为达到上述目的,本发明主要提供如下技术方案:
第一方面,本发明提供一种基于iOS的适配方法,包括:
在新创建项目的配置文件中,设置配置入口类,所述配置入口类中设置有第一分类与第一预设类绑定、第二分类与第二预设类绑定,用于处理所述第一预设类与第二预设类中的事件数据;
获取利用所述配置入口类开发的所述新创建项目;
在执行所述新创建项目时,判断当前iOS的版本;
当所述版本低于预设版本时,基于第一分类处理所述新创建项目的事件数据;
当所述版本为预设版本及以上时,基于所述第二分类处理所述新创建项目的事件数据。
优选的,在所述设置配置入口类时,所述方法还包括:
在所述配置入口类中设置第三分类,所述第三分类用于处理所述新创建项目的UI生命周期事件;
其中,所述第一预设类为AppDelegate;所述第二预设类为SceneDelegate;所述事件数据为生命周期事件。
优选的,所述基于第一分类处理所述新创建项目的事件数据,包括:
利用第一分类获取所述AppDelegate中的生命周期事件;
在所述AppDelegate中获取当前窗口;
利用所述第三分类根据所述当前窗口处理所述生命周期事件中的UI生命周期事件。
优选的,所述基于所述第二分类处理所述新创建项目的事件数据,包括:
利用第一分类获取所述SceneDelegate中的生命周期事件;
在所述SceneDelegate中获取当前窗口;
利用所述第三分类根据所述当前窗口处理所述生命周期事件中的UI生命周期事件。
优选的,所述设置配置入口类,还包括:
在所述配置入口类中设置功能分类,所述功能分类包括初始化数据分类、网络分类、基础配置分类、三方库分类、UI分类中的至少一种;
其中,所述功能分类用于处理所述第一分类和/或第二分类分发所述AppDelegate与SceneDelegate中的数据。
第二方面,本发明提供一种基于iOS的适配装置,所述装置包括:
设置单元,用于在新创建项目的配置文件中,设置配置入口类,所述配置入口类中设置有第一分类与第一预设类绑定、第二分类与第二预设类绑定,用于处理所述第一预设类与第二预设类中的事件数据;
获取单元,用于获取利用所述设置单元设置的配置入口类开发的所述新创建项目;
判断单元,用于在执行所述获取单元得到的新创建项目时,判断当前iOS的版本;
第一处理单元,用于当所述判断单元确定版本低于预设版本时,基于第一分类处理所述新创建项目的事件数据;
第二处理单元,用于当所述判断单元确定版本为预设版本及以上时,基于所述第二分类处理所述新创建项目的事件数据。
优选的,所述设置单元还用于,在所述配置入口类中设置第三分类,所述第三分类用于处理所述新创建项目的UI生命周期事件;其中,所述第一预设类为AppDelegate;所述第二预设类为SceneDelegate;所述事件数据为生命周期事件。
优选的,所述第一处理单元包括:
获取模块,用于利用第一分类获取所述AppDelegate中的生命周期事件;
所述获取模块还用于,在所述AppDelegate中获取当前窗口;
处理模块,用于利用所述第三分类根据所述获取模块得到的当前窗口处理所述生命周期事件中的UI生命周期事件。
优选的,所述第二处理单元包括:
获取模块,用于利用第一分类获取所述SceneDelegate中的生命周期事件;
所述获取模块还用于,在所述SceneDelegate中获取当前窗口;
处理模块,用于利用所述第三分类根据所述获取模块得到的当前窗口处理所述生命周期事件中的UI生命周期事件。
优选的,所述设置单元还用于,在所述配置入口类中设置功能分类,所述功能分类包括初始化数据分类、网络分类、基础配置分类、三方库分类、UI分类中的至少一种;其中,所述功能分类用于处理所述第一分类和/或第二分类分发所述AppDelegate与SceneDelegate中的数据。
另一方面,本发明还提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述第一方面的基于iOS的适配方法。
另一方面,本发明还提供一种存储介质,所述存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行上述第一方面的基于iOS的适配方法。
借由上述技术方案,本发明提供的一种基于iOS的适配方法及装置,是为使用Xcode11新建的项目适配不同版本的iOS而提出的适配方案,通过在创建项目时,在该项目中新增一个配置入口类,以该配置入口类处理基于AppDelegate或SceneDelegate中的生命周期事件,让开发人员基于该配置入口类开发项目代码;在执行新建的项目时,先判断运行该项目的iOS版本,当版本低于预设版本时,基于与AppDelegate绑定的第一分类处理该项目中的生命周期事件,反之,则基于与SceneDelegate绑定的第二分类处理该项目中的生命周期事件。如此适配,就实现了将使用Xcode11新建的项目在适配iOS的不同版本时,都通过配置入口类来处理项目中的生命周期事件,在保留SceneDelegate的同时,不会因为SceneDelegate而导致低于iOS13的版本无法正常显示的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提出的一种基于iOS的适配方法的流程图;
图2示出了本发明实施例提出的另一种基于iOS的适配方法的流程图;
图3示出了本发明实施例提出的一种基于iOS的适配装置的结构示意图;
图4示出了本发明实施例提出的另一种基于iOS的适配装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种基于iOS的适配方法,该方法可用于使用新版的Xcode新建项目,并将该项目适配不同版本的iOS,其具体执行步骤如图1所示,包括:
101、在新创建项目的配置文件中,设置配置入口类。
本步骤中所设置的该配置入口类中具体设置有第一分类与第一预设类绑定、第二分类与第二预设类绑定,用于处理所述第一预设类与第二预设类中的事件数据。其中,第一预设类为开发工具中继承下来的类,而第二预设类为新版本的开发工具(Xcode)中所增设或从第一预设类中分离出的新类。此外,第一分类与第二分类是对应于新版本Xcode中配置的预设类,“第一”、“第二”并不是对分类数量的限定,其分类的数量与预设类的数量相关。
本步骤就是在开发人员使用开发工具创建新项目时,在该新项目的配置文件中除了开发工具预设的类外,再增加一个新类(配置入口类),并在该类中设置多个分类,每个分类绑定一个对应的预设类,用于分发或处理该预设类中的事件,将预设类中的内容解绑值分类中。从而让开发人员可以基于该新类编写项目代码。
102、获取利用配置入口类开发的新创建项目。
本步骤是在适配新创建项目时,获取基于上述的配置入口类所开发的项目。以便将该项目在对应的iOS系统上执行。
103、在执行新创建项目时,判断当前iOS的版本。
iOS版本的提高,对应着配置文件的更新,因此,一些低版本的iOS由于配置文件的不同会导致基于新版本开发工具所创建的新项目无法适配。
本步骤是在执行新创建项目时,先读取当前设备的iOS版本,判断该iOS版本是否与开发工具的版本相匹配,若不匹配,则执行步骤104;反之则执行步骤105。
104、当版本低于预设版本时,基于第一分类处理新创建项目的事件数据。
其中,该预设版本为与开发工具的版本相匹配iOS版本号。当iOS版本低于预设版本时,由于当前iOS仅能处理第一预设类中的内容,无法识别第二预设类中的内容,因此,在适配这类iOS时,通过配置入口类中的第一分类分发或处理新创建项目的事件数据。
105、当版本为预设版本及以上时,基于第二分类处理新创建项目的事件数据。
当iOS版本为预设版本及以上时,当前iOS不仅可以处理第一预设类中的内容,还可以处理第二预设类中的内容,因此,在适配这类iOS时,是通过配置入口类中的第一分类与第二分类共同分发或处理新创建项目的事件数据。
基于上述图1的实现方式可以看出,本发明实施例所提出的适配方法是基于新版本的开发工具所创建的新项目适配不同版本的iOS,由于新版本的开发工具在配置文件中存在更新的类,为了将其在不删除的情况下能够适配至低版本的iOS,本发明实施例的适配是基于在开发项目时,在所创建的项目配置文件中,增设一个配置入口类,在其中增加第一分类与第二分类,并将这些分类与配置文件中的预设类进行绑定,在适配不同版本的iOS时,都可以通过配置入口类统一处理该项目的事件数据,其区别仅是根据iOS的预设版本使用不同的分类来分发或处理该项目的事件数据。
进一步的,在上述图1的基础上,本发明实施例将以iOS13以及对应的Xcode11为例说明本发明的适配思想。针对Xcode11中将原有的AppDelegate修改为AppDelegate与SceneDelegate,详细说明本发明实施例基于Xcode11创建新项目后,将该新项目适配不同版本iOS的过程,具体步骤如图2所示,包括:
201、在新创建项目的配置文件中,设置配置入口类。
在本步骤中,需要在配置入口类中分别设置第一分类与第二分类,其中,第一分类与原配置文件中的AppDelegate绑定,第二分类与原配置文件中的SceneDelegate绑定,以此实现将在AppDelegate与SceneDelegate的内容绑定到第一分类与第二分类中,并通过第一分类与第二分类将这些内容分发到配置入口类中的指定位置,由配置入口类实现对新建项目中生命周期事件的处理。
其中,由第一分类与第二分类分发内容到配置入口类中的指定位置,是指在该配置入口类中还设置有多个不同功能的分类,每种功能分类用于处理特定事件,比如根据项目执行过程的需求可以分为初始化数据分类、网络分类、基础配置分类、三方库分类、UI分类等,如此,是将原本在AppDelegate或SceneDelegate内处理的事件数据通过第一分类与第二分类根据事件类型分别分发至指定的分类中进行处理。第一分类与第二分类仅用于将AppDelegate与SceneDelegate中的数据进行转发,而不做处理,由所设置的分类进行处理,如此,可以根据不同分类进一步设置执行的优先级,从而确保项目启动的流畅性,解决之前在AppDelegate或SceneDelegate中大量耦合代码导致的启动速度慢的问题。
进一步的,由于Xcode11中新增的SceneDelegate主要用于管理UI生命周期,为了对此进行适配,可以在配置入口类中设置一个第三分类,该第三分类用于处理新创建项目的UI生命周期事件,在该第三分类中包含有四种UI生命周期状态,分别为:EnterForeground(进入前台),EnterBackground(进入后台),BecomeActive(激活),ResignActive(失活)。通过对第一分类与第二分类设置分发规则实现将UI生命周期事件发送到第三分类中处理。需要说明的是,该第三分类与上述的功能分类相同,都是用于接收第一分类与第二分类分发的特定事件,并进行处理。
需要说明的是,在配置入口类中设置第一分类与第二分类以及功能分类的同时,还需要设置具体的分发规则,以便于将第一分类与第二分类所绑定的AppDelegate与SceneDelegate中的数据分发至可处理的功能分类中。
基于上述所设置的配置入口类,开发人员可以在此基础上进行项目开发。
202、获取利用配置入口类开发的新创建项目。
203、在执行新创建项目时,判断当前iOS的版本是否低于iOS13。
本步骤是在执行新创建项目时,读取当前设备的iOS版本号,判断当前iOS的版本是否低于iOS13,若低于iOS13,说明当前iOS是通过AppDelegate来处理项目的生命周期事件,其适配就需要执行步骤204;反之,当前iOS的版本为iOS13及以上版本时,说明当前iOS是通过AppDelegate与SceneDelegate共同处理项目的生命周期事件,其中,AppDelegate用于处理APP生命周期事件,SceneDelegate用于处理UI生命周期事件,对此的适配可执行步骤205。
204、基于第一分类处理新创建项目的生命周期事件。
本步骤在适配低于iOS13的版本时,通过绑定AppDelegate的第一分类获取生命周期事件,包括APP生命周期事件与UI生命周期事件,同时,在AppDelegate中获取当前窗口(window),并将其赋值到配置入口类中,之后,由第一分类将生命周期事件分发至指定的分类中进行处理,其中,UI生命周期事件将分发至第三分类,由第三分类根据当前窗口的赋值处理该UI生命周期事件。
205、基于第二分类处理新创建项目的生命周期事件。
本步骤在适配iOS13及以上版本时,通过绑定AppDelegate的第一分类获取APP生命周期事件,通过绑定SceneDelegate的第二分类获取UI生命周期事件,同时,在SceneDelegate中获取当前窗口(window),并将其赋值到配置入口类中,之后,由第一分类将APP生命周期事件分发至指定的分类中进行处理,由第二分类将UI生命周期事件分发至第三分类中,由第三分类根据当前窗口的赋值处理该UI生命周期事件。
以上图2所示实施例是针对Xcode11中新增SceneDelegate的适配方法的说明,基于此,图1所示实施例则可以作为日后Xcode更新时,针对新增类的适配方式,避免了现有适配中直接删除SceneDelegate的方式。同时,由于本发明是在新建的配置入口类中进一步设置功能分类,还可以有效提高项目启动的流畅性。
进一步的,作为对上述图1、2所示方法实施例的实现,本发明实施例提供了一种基于iOS的适配装置,该装置可以在不删除SceneDelegate的情况下适配基于Xcode11创建的项目。该装置的实施例与前述方法实施例对应,为便于阅读,本实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。具体如图3所示,该装置包括:
设置单元31,用于在新创建项目的配置文件中,设置配置入口类,所述配置入口类中设置有第一分类与第一预设类绑定、第二分类与第二预设类绑定,用于处理所述第一预设类与第二预设类中的事件数据;
获取单元32,用于获取利用所述设置单元31设置的配置入口类开发的所述新创建项目;
判断单元33,用于在执行所述获取单元32得到的新创建项目时,判断当前iOS的版本;
第一处理单元34,用于当所述判断单元33确定版本低于预设版本时,基于第一分类处理所述新创建项目的事件数据;
第二处理单元35,用于当所述判断单元33确定版本为预设版本及以上时,基于所述第二分类处理所述新创建项目的事件数据。
进一步的,所述设置单元31还用于,在所述配置入口类中设置第三分类,所述第三分类用于处理所述新创建项目的UI生命周期事件;其中,所述第一预设类为AppDelegate;所述第二预设类为SceneDelegate;所述事件数据为生命周期事件。
进一步的,如图4所示,所述第一处理单元34包括:
获取模块341,用于利用第一分类获取所述AppDelegate中的生命周期事件;
所述获取模块341还用于,在所述AppDelegate中获取当前窗口;
处理模块342,用于利用所述第三分类根据所述获取模块341得到的当前窗口处理所述生命周期事件中的UI生命周期事件。
进一步的,如图4所示,所述第二处理单元35包括:
获取模块351,用于利用第一分类获取所述SceneDelegate中的生命周期事件;
所述获取模块351还用于,在所述SceneDelegate中获取当前窗口;
处理模块352,用于利用所述第三分类根据所述获取模块351得到的当前窗口处理所述生命周期事件中的UI生命周期事件。
进一步的,所述设置单元31还用于,在所述配置入口类中设置功能分类,所述功能分类包括初始化数据分类、网络分类、基础配置分类、三方库分类、UI分类中的至少一种;其中,所述功能分类用于处理所述第一分类和/或第二分类分发所述AppDelegate与SceneDelegate中的数据。
进一步的,本发明实施例还提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述图1-2中所述的基于iOS的适配方法。
进一步的,本发明实施例还提供一种存储介质,所述存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行上述图1-2中所述的基于iOS的适配方法。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (7)

1.一种基于iOS的适配方法,所述方法包括:
在新创建项目的配置文件中,设置配置入口类,所述配置入口类中设置有第一分类与第一预设类绑定、第二分类与第二预设类绑定,用于处理所述第一预设类与第二预设类中的事件数据,还设置具体的分发规则,其中,所述第一预设类为AppDelegate;所述第二预设类为SceneDelegate;所述事件数据为生命周期事件;
获取利用所述配置入口类开发的所述新创建项目;
在执行所述新创建项目时,判断当前iOS的版本;
当所述版本低于预设版本时,基于第一分类处理所述新创建项目的事件数据;
当所述版本为预设版本及以上时,基于所述第二分类处理所述新创建项目的事件数据;
所述设置配置入口类,还包括:在所述配置入口类中设置功能分类,所述功能分类包括初始化数据分类、网络分类、基础配置分类、三方库分类、UI分类中的至少一种;其中,第一分类与第二分类仅用于将AppDelegate与SceneDelegate中的数据进行转发,而不做处理,由所述功能分类处理所述第一分类和/或第二分类分发所述AppDelegate与SceneDelegate中的数据;对各功能分类设置执行的优先级;
在所述设置配置入口类时,所述方法还包括:在所述配置入口类中设置第三分类,所述第三分类用于处理所述新创建项目的UI生命周期事件。
2.根据权利要求1所述的方法,其特征在于,所述基于第一分类处理所述新创建项目的事件数据,包括:
利用第一分类获取所述AppDelegate中的生命周期事件;
在所述AppDelegate中获取当前窗口;
利用所述第三分类根据所述当前窗口处理所述生命周期事件中的UI生命周期事件。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第二分类处理所述新创建项目的事件数据,包括:
利用第一分类获取所述SceneDelegate中的生命周期事件;
在所述SceneDelegate中获取当前窗口;
利用所述第三分类根据所述当前窗口处理所述生命周期事件中的UI生命周期事件。
4.一种基于iOS的适配装置,所述装置包括:
设置单元,用于在新创建项目的配置文件中,设置配置入口类,所述配置入口类中设置有第一分类与第一预设类绑定、第二分类与第二预设类绑定,用于处理所述第一预设类与第二预设类中的事件数据,还设置具体的分发规则,其中,所述第一预设类为AppDelegate;所述第二预设类为SceneDelegate;所述事件数据为生命周期事件;
获取单元,用于获取利用所述设置单元设置的配置入口类开发的所述新创建项目;
判断单元,用于在执行所述获取单元得到的新创建项目时,判断当前iOS的版本;
第一处理单元,用于当所述判断单元确定版本低于预设版本时,基于第一分类处理所述新创建项目的事件数据;
第二处理单元,用于当所述判断单元确定版本为预设版本及以上时,基于所述第二分类处理所述新创建项目的事件数据;
所述设置单元,还用于在所述配置入口类中设置功能分类,所述功能分类包括初始化数据分类、网络分类、基础配置分类、三方库分类、UI分类中的至少一种;其中,第一分类与第二分类仅用于将AppDelegate与SceneDelegate中的数据进行转发,而不做处理,由所述功能分类处理所述第一分类和/或第二分类分发所述AppDelegate与SceneDelegate中的数据;对各功能分类设置执行的优先级;
所述设置单元,还用于在所述配置入口类中设置第三分类,所述第三分类用于处理所述新创建项目的UI生命周期事件。
5.根据权利要求4所述的装置,其特征在于,所述第一处理单元包括:
获取模块,用于利用第一分类获取所述AppDelegate中的生命周期事件;
所述获取模块还用于,在所述AppDelegate中获取当前窗口;
处理模块,用于利用所述第三分类根据所述获取模块得到的当前窗口处理所述生命周期事件中的UI生命周期事件。
6.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1-3中任意一项所述的基于iOS的适配方法。
7.一种存储介质,其特征在于,所述存储介质用于存储计算机程序,其中,所述计算机程序运行时控制所述存储介质所在设备执行权利要求1-3中任意一项所述的基于iOS的适配方法。
CN202010507771.5A 2020-06-05 2020-06-05 基于iOS的适配方法及装置 Active CN111651194B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010507771.5A CN111651194B (zh) 2020-06-05 2020-06-05 基于iOS的适配方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010507771.5A CN111651194B (zh) 2020-06-05 2020-06-05 基于iOS的适配方法及装置

Publications (2)

Publication Number Publication Date
CN111651194A CN111651194A (zh) 2020-09-11
CN111651194B true CN111651194B (zh) 2023-10-24

Family

ID=72349836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010507771.5A Active CN111651194B (zh) 2020-06-05 2020-06-05 基于iOS的适配方法及装置

Country Status (1)

Country Link
CN (1) CN111651194B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104063239A (zh) * 2013-03-22 2014-09-24 腾讯科技(深圳)有限公司 移动终端的应用程序更新方法及服务器、客户端
CN106815004A (zh) * 2015-12-01 2017-06-09 北京触控科技有限公司 一种兼容不同Cocos2d-x版本的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW550460B (en) * 2000-09-14 2003-09-01 Synq Technology Inc Method for dynamically downloading a program logic into an application program and the system thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104063239A (zh) * 2013-03-22 2014-09-24 腾讯科技(深圳)有限公司 移动终端的应用程序更新方法及服务器、客户端
CN106815004A (zh) * 2015-12-01 2017-06-09 北京触控科技有限公司 一种兼容不同Cocos2d-x版本的方法

Also Published As

Publication number Publication date
CN111651194A (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
US9880837B2 (en) Artifact manager for release automation
US20170277524A1 (en) Dynamic container deployment with parallel conditional layers
US9384011B2 (en) Workspace creation and management for a computing desktop
WO2014016649A1 (en) Method and apparatus for implementing instrumentation code
CN109947643B (zh) 一种基于a/b测试的实验方案的配置方法、装置及设备
CN109558145B (zh) 一种面向安卓应用的安装包体积优化方法及装置
CN108874379B (zh) 页面的处理方法及装置
US9037994B2 (en) Navigation to a data definition in a diff context
CN109522189B (zh) 一种数据监测方法、装置及系统
CN106951240B (zh) 一种用户定制产品的批量打包方法
CN111651194B (zh) 基于iOS的适配方法及装置
CN109582347B (zh) 一种获取前端代码的方法及装置
US9626371B2 (en) Attribute selectable file operation
CN113485746B (zh) 应用程序接口文档的生成方法及装置
CN109683887A (zh) 一种支持多方案自定义web项目的构建方法及装置
CN109960497A (zh) 一种脚本文件间的调用方法及装置
US9552347B1 (en) Data grid cell styling systems and methods
CN113515441A (zh) 应用信息采集方法、系统、电子设备及存储介质
CN110955813A (zh) 一种数据爬取方法及装置
CN109002343B (zh) 一种实现虚拟机批量创建的方法及装置
CN106897588B (zh) 一种标签函数的处理方法及装置
CN112241254B (zh) 一种车联网多端系统的代码统计方法及装置
CN107479899B (zh) 文件处理方法和装置、存储介质及处理器
CN117234466B (zh) 企业管理软件开发方法、系统、设备及存储介质
CN112882704B (zh) 一种json对象属性配置方法、设备及介质

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