一种简化代码的方法和装置与流程

文档序号:12463068阅读:305来源:国知局
一种简化代码的方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种简化代码的方法和装置。



背景技术:

随着智能设备的广泛使用,应用的功能也越来越丰富。以直播应用为例,用户使用直播应用时,大部分时间都停留在直播页面观看直播视频。直播页面需要为用户提供大量功能,例如发送弹幕、聊天、发送虚拟礼物、接收虚拟礼物、充值、屏蔽用户、举报用户、观看直播、调节亮度、调节声音和旋转屏幕方向等。在现有技术中,上述直播页面的功能对应的各个代理、代理协议和方法都容置在界面控制器UIViewController中。因此,使得UIViewController中包含了大量代码。

然而,过多的代码会给功能扩充和维护应用带来困难。



技术实现要素:

本发明实施例提供了一种简化代码的方法和装置,用于简化UIViewController中的代码。

第一方面,本发明提供了一种简化代码的方法,包括:

创建界面控制器UIViewController类的一个或多个UIViewController分类;

将所述UIViewController类中的方法集合导入所述UIViewController分类中,其中,所述UIViewController类中包括一个或多个所述方法集合,每个所述方法集合用于实现目标应用的一个或多个目标功能,一个所述方法集合导入一个所述UIViewController分类;

建立所述UIViewController类调用一个或多个所述UIViewController分类的调用关系,以使得所述UIViewController类能够调用一个或多个所述UIViewController分类中的所述方法集合实现对应的一个或多个所述目标功能。

可选的,将所述UIViewController类中的方法集合导入所述UIViewController分类中,包括:

将所述UIViewController类的源代码文件中的所述方法集合导入所述UIViewController分类的源代码文件中。

可选的,所述方法还包括:

将所述UIViewController类的源代码文件的一个或多个属性导入所述UIViewController类的头文件中。

可选的,建立所述UIViewController类调用一个或多个所述UIViewController分类的调用关系,包括:

将一个或多个所述UIViewController分类的头文件导入所述UIViewController类的源代码文件。

可选的,在将所述UIViewController类的源代码文件中的所述方法集合导入所述UIViewController分类的源代码文件中之后,还包括:

将导入所述UIViewController分类的源代码文件中的所述方法集合中的访问属性的方式转换为所述UIViewController分类能够识别的方式。

第二方面,本发明提供了一种简化代码的装置,包括:

创建模块,用于创建界面控制器UIViewController类的一个或多个UIViewController分类;

第一导入模块,用于将所述UIViewController类中的方法集合导入所述UIViewController分类中,其中,所述UIViewController类中包括一个或多个所述方法集合,每个所述方法集合用于实现目标应用的一个或多个目标功能,一个所述方法集合导入一个所述UIViewController分类;

调用模块,用于建立所述UIViewController类调用一个或多个所述UIViewController分类的调用关系,以使得所述UIViewController类能够调用一个或多个所述UIViewController分类中的所述方法集合实现对应的一个或多个所述目标功能。

可选的,所述第一导入模块用于将所述UIViewController类的源代码文件中的所述方法集合导入所述UIViewController分类的源代码文件中。

可选的,所述装置还包括:

第二导入模块,用于将所述UIViewController类的源代码文件的一个或多个属性导入所述UIViewController类的头文件中。

可选的,所述调用模块用于将一个或多个所述UIViewController分类的头文件导入所述UIViewController类的源代码文件。

可选的,所述装置还包括:

转换模块,用于在将所述UIViewController类的源代码文件中的所述方法集合导入所述UIViewController分类的源代码文件中之后,将导入所述UIViewController分类的源代码文件中的所述方法集合中的访问属性的方式转换为所述UIViewController分类能够识别的方式。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

在本发明实施例的技术方案中,首先创建界面控制器UIViewController类的一个或多个UIViewController分类,然后将所述UIViewController类中的方法集合导入所述UIViewController分类中,其中,所述UIViewController类中包括一个或多个所述方法集合,每个所述方法集合用于实现目标应用的一个或多个目标功能,一个所述方法集合导入一个所述UIViewController分类,并且,建立所述UIViewController类调用一个或多个所述UIViewController分类的调用关系,以使得所述UIViewController类能够调用一个或多个所述UIViewController分类中的所述方法集合实现对应的一个或多个所述目标功能。由于将所述UIViewController类中的大量代码,即一个或多个所述方法集合对应导入一个或多个所述UIViewController分类,故而简化了所述UIViewController类中的代码。同时,建立所述UIViewController类调用所述UIViewController分类的调用关系,使得所述UIViewController类在需要使用被导入所述UIViewController分类的所述方法集合的时,能够调用对应的所述UIViewController分类,进而使用所述UIViewController分类中的所述方法集合实现对应所述目标功能。由此,本发明解决了UIViewController类中代码繁多的技术问题,实现了简化UIViewController代码的技术效果,进而降低了对UIViewController进行功能扩充和维护的难度。

附图说明

图1为本发明实施例中简化代码的方法流程图;

图2为现有技术一UIViewController类的示意图;

图3为本发明实施例中UIViewController类和UIViewController分类的示意图;

图4为本发明实施例中简化代码的装置示意图。

具体实施方式

本发明实施例提供了一种简化代码的方法和装置,用于简化UIViewController中的代码。

为了解决上述技术问题,本发明提供的技术方案总体思路如下:

在本发明实施例的技术方案中,首先创建界面控制器UIViewController类的一个或多个UIViewController分类,然后将所述UIViewController类中的方法集合导入所述UIViewController分类中,其中,所述UIViewController类中包括一个或多个所述方法集合,每个所述方法集合用于实现目标应用的一个或多个目标功能,一个所述方法集合导入一个所述UIViewController分类,并且,建立所述UIViewController类调用一个或多个所述UIViewController分类的调用关系,以使得所述UIViewController类能够调用一个或多个所述UIViewController分类中的所述方法集合实现对应的一个或多个所述目标功能。由于将所述UIViewController类中的大量代码,即一个或多个所述方法集合对应导入一个或多个所述UIViewController分类,故而简化了所述UIViewController类中的代码。同时,建立所述UIViewController类调用所述UIViewController分类的调用关系,使得所述UIViewController类在需要使用被导入所述UIViewController分类的所述方法集合的时,能够调用对应的所述UIViewController分类,进而使用所述UIViewController分类中的所述方法集合实现对应所述目标功能。由此,本发明解决了UIViewController类中代码繁多的技术问题,实现了简化UIViewController代码的技术效果,进而降低了对UIViewController进行功能扩充和维护的难度。

下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

本发明第一方面提供了一种简化代码的方法,请参考图1,为本发明实施例中简化代码的方法流程图。该方法包括:

S101:创建界面控制器UIViewController类的一个或多个UIViewController分类;

S102:将所述UIViewController类中的方法集合导入所述UIViewController分类中,其中,所述UIViewController类中包括一个或多个所述方法集合,每个所述方法集合用于实现目标应用的一个或多个目标功能,一个所述方法集合导入一个所述UIViewController分类;

S103:建立所述UIViewController类调用一个或多个所述UIViewController分类的调用关系,以使得所述UIViewController类能够调用一个或多个所述UIViewController分类中的所述方法集合实现对应的一个或多个所述目标功能。

具体来讲,界面控制器UIViewController类是用于控制界面的类。目标应用例如直播应用、购物应用、聊天应用或修图应用等,本发明不做具体限制。目标功能为目标应用的功能,例如目标应用为直播应用,目标功能为充值功能、赠送虚拟礼物功能、聊天功能和调节亮度功能等。本发明实施例中的UIViewController类按照现有技术创建即可。

在S101中,需要创建界面控制器UIViewController类的分类,即UIViewController分类。在具体实现过程中,本发明所属领域的普通技术人员可以根据目标应用需要安装的客户端的实际情况创建UIViewController类和UIViewController分类,本发明不做具体限制。为了方便说明,本发明以目标应用将要安装的客户端的智能操作系统为苹果智能终端操作系统ios为例进行后续介绍。

那么,对于智能操作系统为ios系统而言,创建UIViewController类具体为创建UIViewController类的头文件UIViewController.h文件(UIViewController.h文件)和源代码文件(UIViewController.m文件)。当然,在创建完成后,还需要按照目标应用的目标功能,由开发人员在UIViewController.m文件中编写用于实现目标功能的方法和属性,并且在UIViewController.h文件中编写函数的声明。由此可见,由于UIViewController.m文件中包含了大量方法和属性,所以使得UIViewController类中包含大量的代码。

对于一个或多个UIViewController分类,为了UIViewController分类和UIViewController类,本发明实施例将UIViewController分类的名称命名为UIViewController+Namex,x则用于区分每个UIViewController分类,可以根据实际情况设置。例如x设置为A、B、C…等,则多个UIViewController分类依次为UIViewController+NameA,UIViewController+NameB,UIViewController+NameC等,依次类推。或者x设置为1、2、3、…等,则多个UIViewController分类依次为UIViewController+Name1,UIViewController+Name2,UIViewController+Name3等,依次类推。当然,UIViewController分类的名称也可以不为UIViewController+Namex,而为例如reUIViewController或者re-UIViewController等其他名称,本发明所属领域的普通技术人可以根据实际进行选择,本发明不做具体限制。

为了方便后续说明,本发明假设UIViewController分类的名字具体为UIViewController+NameA,UIViewController+NameB和UIViewController+NameC等。则创建UIViewController分类,具体为创建每个UIViewController+Namex分类的头文件和源代码文件,具体为创建UIViewController+NameA.h文件和UIViewController+NameA.m,UIViewController+NameB.h文件和UIViewController+NameB.m文件,UIViewController+NameC.h文件和UIViewController+NameC.m文件等,依次类推。

接下来,在S102中,将UIViewController类中的方法集合导入UIViewController分类中。具体来讲,本发明实施例中的方法集合为用于实现一个功能,或者多个相关功能的方法的集合。举例来说,用于实现充值功能的方法具有100个,则将该100个方法划分聚合为一个方法集合;用于实现发送文字聊天功能的方法有30个,用于实现发送表情聊天功能的方法有40个,由于发送文字聊天功能和发送表情聊天功能相关,因此可以将上述用于实现发送文字聊天功能的30个方法和用于实现发送表情聊天功能的40个方法聚合为一个方法集合。在具体实现过程中,如何将UIViewController类中的方法划分和聚合为一个或多个方法集合,本发明所属领域的普通技术人员可以根据实际进行选择,本发明不做具体限制。

在本发明实施例中,UIViewController类包括的方法集合具有一个或多个。在将UIViewController类中的一个或多个方法集合导入UIViewController分类中时,为了方便维护各个功能,以及方便UIViewController类实现各个功能,本发明实施例将UIViewController类的方法集合导入UIViewController分类时,具体为将一个方法集合导入一个UIViewController分类中,即方法集合与UIViewController分类一一对应。因此,在创建UIViewController分类时,根据划分完成的方法集合的数量,创建与方法集合数量相同的UIViewController分类。

在本发明实施中,将UIViewController类的方法集合导入UIViewController分类中,具体为:

将所述UIViewController类的源代码文件中的所述方法集合导入所述UIViewController分类的源代码文件中。

具体来讲,将UIViewController类的源代码文件中的一个或多个方法集合导入一个或多个UIViewController分类的源代码文件,有两种方法。第一种,从UIViewController类的源代码文件中拷贝一个方法集合中的方法,然后在该方法集合对应的UIViewController分类的源代码文件中粘贴,并在粘贴完成该方法集合中所有方法后,在UIViewController类的源代码文件中删除该方法集合。第二种,从UIViewController类的源代码文件中剪切一个方法集合中的方法,然后在该方法集合对应的UIViewController分类的源代码文件中粘贴方法。在具体实现过程中,本发明所属领域的普通技术人员可以根据实际选择上述两种方法中的任意一种,本发明不做具体限制。通过上述任意一种方式,就实现了将UIViewController类中的方法集合导入UIViewController分类中。

举例来说,请参考图2和图3。图2示出了现有技术中一UIViewController类的示意图,图3示出了本发明实施例中一UIViewController类和UIViewController分类的示意图。在图2和图3中,以功能A、功能B、功能C、…、功能Z表示UIViewController类中包括26个功能和/或相关功能。功能A对应的方法集合包括功能A方法1、功能A方法2、…和功能A方法NA,功能B对应的方法集合包括功能B方法1、功能B方法2、…和功能B方法NB,功能C对应的方法集合包括功能C方法1、功能C方法2、…和功能C方法NC,…,功能Z对应的方法集合包括功能Z方法1、功能Z方法2、…和功能Z方法NZ。其中,NA、NB、NC、…和NZ均为正整数。

对应于26个功能和/或相关功能,共需创建26个UIViewController分类。该26个UIViewController分类具体为UIViewController+NameA、UIViewController+NameB、UIViewController+NameC、...和UIViewController+NameZ。

将功能A对应的方法集合的方法导入UIViewController+NameA类的源代码文件中,将功能B对应的方法集合的方法导入UIViewController+NameB类的源代码文件中,将功能C对应的方法集合的方法导入UIViewController+NameC类的源代码文件中,…,将功能Z对应的方法集合的方法导入UIViewController+NameZ类的源代码文件中。完成方法集合的导入导出后,UIViewController类和UIViewController分类如图3所示。可以看出,由于UIViewController类中大量的方法代码被导出至一个或多个UIViewController分类中,因此UIViewController类的代码得以简化。

另外,由于在具体实现过程中,方法的实现可能需要使用属性(或称变量),因此,本发明实施例还包括:

将所述UIViewController类的源代码文件的一个或多个属性导入所述UIViewController类的头文件中。

具体来讲,为了使导入UIViewController分类的方法依然可以使用正确的属性,还需要将UIViewController.m文件中的属性导入UIViewController.h文件中。当然,将属性从UIViewController.m文件导入UIViewController.h文件的方法与将方法集合导入UIViewController分类的源代码文件类似,因此此处就不再相信赘述了。

另外,ios系统目标应用的类可以以“_”方式访问,也可以以“self.”形式访问属性。例如,类可以通过“_property”或者“self.propery”两种访问方式访问到property属性。然而,分类仅能以“self.”的方式访问属性,并不能识别并编译“_”。所以,在S102之后,还包括:

将导入所述UIViewController分类的源代码文件中的所述方法集合中的属性转换为所述UIViewController分类能够识别的属性。

换言之,将UIViewController+NameA.m文件中的以“_”方式访问的属性转换成“self.”方式访问。

在具体实现过程中,可以先将UIViewControlle.m文件中的方法集合导入UIViewController分类的源代码中,再将UIViewController.m文件的属性导入UIViewController.h文件中,也可以先将UIViewController.m文件的属性导入UIViewController.h文件中,再将UIViewController.m文件中的方法集合导入UIViewController分类的源代码文件中。本发明所属领域的普通技术人员可以根据实际进行设置,本发明不做具体限制。

在将方法集合导入对应的UIViewController分类中后,为保证UIViewController类仍然能够正常实现一个或多个目标功能,进一步还需要执行S103,建立UIViewController类对UIViewController分类的调用关系。在本发明实施例通过如下方式实现S103:

将一个或多个所述UIViewController分类的头文件导入所述UIViewController类的源代码文件。

具体来讲,在将UIViewController类的方法集合导入UIViewController分类后,进一步将UIViewController类的头文件导入UIViewController.m中。那么,在UIViewController类需要实现一目标功能时,通过该目标功能对应的UIViewController分类的头文件调用存储在同名称的源代码文件中的方法集合执行,进而UIViewController类实现该目标功能。

同时,由于UIViewController分类的头文件中仅包括函数声明和属性等少量代码,因此不会造成UIViewController.m文件中代码数量的大幅增加。

由上述描述可以看出,由于将UIViewController类的方法集合导入UIViewController分类中,因此UIViewController分类可以调用UIViewController类的方法。同时,UIViewController分类的头文件又导入了UIViewController类的源代码文件中,因此UIViewController类也可以调用UIViewController分类的方法。所以,本发明实施例中的UIViewController类和UIViewController分类可以相互调用。利用两者的相互调用,简化了UIViewController类中的代码,并且保证UIViewController类的正常运行。

基于与前述实施例中简化代码的方法同样的发明构思,本发明第二方面还提供一种简化代码的装置,如图4所示,包括:

创建模块101,用于创建界面控制器UIViewController类的一个或多个UIViewController分类;

第一导入模块102,用于将所述UIViewController类中的方法集合导入所述UIViewController分类中,其中,所述UIViewController类中包括一个或多个所述方法集合,每个所述方法集合用于实现目标应用的一个或多个目标功能,一个所述方法集合导入一个所述UIViewController分类;

调用模块103,用于建立所述UIViewController类调用一个或多个所述UIViewController分类的调用关系,以使得所述UIViewController类能够调用一个或多个所述UIViewController分类中的所述方法集合实现对应的一个或多个所述目标功能。

具体来讲,第一导入模块102用于将所述UIViewController类的源代码文件中的所述方法集合导入所述UIViewController分类的源代码文件中。

进一步,本发明实施例中的简化代码的装置还包括:

第二导入模块,用于将所述UIViewController类的源代码文件的一个或多个属性导入所述UIViewController类的头文件中。

具体来讲,调用模块103用于将一个或多个所述UIViewController分类的头文件导入所述UIViewController类的源代码文件。

更进一步,本发明实施例简化代码的装置还包括:

转换模块,用于在将所述UIViewController类的源代码文件中的所述方法集合导入所述UIViewController分类的源代码文件中之后,将导入所述UIViewController分类的源代码文件中的所述方法集合中的访问属性的方式转换为所述UIViewController分类能够识别的方式。

前述图1-图3实施例中的简化代码的方法的各种变化方式和具体实例同样适用于本实施例的简化代码的装置,通过前述对简化代码的方法的详细描述,本领域技术人员可以清楚的知道本实施例中简化代码的装置的实施方法,所以为了说明书的简洁,在此不再详述。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

在本发明实施例的技术方案中,首先创建界面控制器UIViewController类的一个或多个UIViewController分类,然后将所述UIViewController类中的方法集合导入所述UIViewController分类中,其中,所述UIViewController类中包括一个或多个所述方法集合,每个所述方法集合用于实现目标应用的一个或多个目标功能,一个所述方法集合导入一个所述UIViewController分类,并且,建立所述UIViewController类调用一个或多个所述UIViewController分类的调用关系,以使得所述UIViewController类能够调用一个或多个所述UIViewController分类中的所述方法集合实现对应的一个或多个所述目标功能。由于将所述UIViewController类中的大量代码,即一个或多个所述方法集合对应导入一个或多个所述UIViewController分类,故而简化了所述UIViewController类中的代码。同时,建立所述UIViewController类调用所述UIViewController分类的调用关系,使得所述UIViewController类在需要使用被导入所述UIViewController分类的所述方法集合的时,能够调用对应的所述UIViewController分类,进而使用所述UIViewController分类中的所述方法集合实现对应所述目标功能。由此,本发明解决了UIViewController类中代码繁多的技术问题,实现了简化UIViewController代码的技术效果,进而降低了对UIViewController进行功能扩充和维护的难度。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1