CN114218171A - 一种便利的存储方法、电子设备、存储介质及系统 - Google Patents
一种便利的存储方法、电子设备、存储介质及系统 Download PDFInfo
- Publication number
- CN114218171A CN114218171A CN202111581217.2A CN202111581217A CN114218171A CN 114218171 A CN114218171 A CN 114218171A CN 202111581217 A CN202111581217 A CN 202111581217A CN 114218171 A CN114218171 A CN 114218171A
- Authority
- CN
- China
- Prior art keywords
- model
- data
- storage
- setter
- class
- 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 284
- 230000006870 function Effects 0.000 claims description 50
- 230000003068 static effect Effects 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013500 data storage Methods 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种便利的存储方法、电子设备、存储介质及系统,涉及数据存储领域,该方法包括创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件;定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义;使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能;将待存储数据导入所述模型中,基于重写的setter方法和getter方法为所述模型赋值以完成对待存储数据的存储。本发明能够避免进行数据读取时对整个plist文件进行存储,且支持多种类型数据的存储。
Description
技术领域
本发明涉及数据存储领域,具体涉及一种便利的存储方法、电子设备、存储介质及系统。
背景技术
在移动开发过程中,经常需要对一些小数据进行存储,小数据的存储一般都是通过调用操作系统自带的存储方法进行。系统自带的存储方法是将所有数据都放在一个文件下进行存储,从而方便数据的存储和读取。
但是,将所有数据都放在一个文件下进行存储会存在以下问题:(1)由于所有的数据都存储在一个plist文件下面,当plist文件过大的时,每次进行一个小数据的读取时,都会对这个大的plist文件,进行读取,读取小数据的操作却导致需要操纵较大的文件,此种数据读取方式极其消耗内存;(2)数据存储复杂,且存储过程不便,需要通过操作系统的userdefault类来进行数据的存储,由于系统方案的底层较为简单,导致此种存储方式不支持非模型的存储。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种便利的存储方法、电子设备、存储介质及系统,能够避免进行数据读取时对整个plist文件进行存储,且支持多种类型数据的存储。
为达到以上目的,本发明提供的一种便利的存储方法,包括以下步骤:
创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件;
定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义;
使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能;
将待存储数据导入所述模型中,基于重写的setter方法和getter方法为所述模型赋值以完成对待存储数据的存储。
在上述技术方案的基础上,所述创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件,具体步骤包括:
定义suiteName,并将定义的suiteName置为nil,完成userdefault类的创建;
对定义的suiteName进行获取,以确定定义的suiteName存在;
调用initWithSuiteName方法在创建的userdefault类中创建plist文件。
在上述技术方案的基础上,所述定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义,具体步骤包括:
创建静态token,并基于dispatch_once方法在创建的静态token中创建static类型的模型;
调用init方法对setupDefaultValues方法进行响应;
基于setupDefaultValues方法获取defaults字典,进行register方法的调用,在模型的头文件中进行属性的定义。
在上述技术方案的基础上,所述基于dispatch_once方法在创建的静态token中创建static类型的模型,具体步骤包括:
基于dispatch_once方法并调用self类的方法,在静态token中创建一个对象;
调用alloc方法为创建的对象分配内存,完成static类型的模型的创建。
在上述技术方案的基础上,所述使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能,具体步骤包括:
定义无符号型的变量count,所述变量count用于对所述属性进行保存;
通过class_copyPropertyList函数获取定义的变量count,以进行属性列表的获取;
基于循环操作,在每个循环中通过索引函数对变量count中的属性getterKey以及属性名称setterKey进行获取;
使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能。
在上述技术方案的基础上,所述将待存储数据导入所述模型中,基于重写的setter方法和getter方法为所述模型赋值以完成对待存储数据的存储,具体步骤包括:
调用setBoolValue方法,获取模型的默认值,所述默认值包括userdefault类的属性和变量;
通过setBOOL方法将待存储数据导入模型中;
调用synchronize方法,基于重写的setter方法和getter方法为模型赋值以完成对待存储数据的存储。
在上述技术方案的基础上,所述待存储数据的类型包括对象类型、数值类型和字符串类型。
本发明提供的一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述所述方法的步骤。
本发明提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述所述方法的步骤。
本发明提供的一种便利的存储系统,包括:
创建模块,其用于创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件;
定义模块,其用于定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义;
重写模块,其用于使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能;
存储模块,其用于将待存储数据导入所述模型中,基于重写的setter方法和getter方法为所述模型赋值以完成对待存储数据的存储。
与现有技术相比,本发明的优点在于:通过创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件,然后定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义,使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能,即创建可以分为多个文件的plist文件,并定义模型,当进行数据存储时,采用为定义的模型赋值的方式完成对数据的存储,避免进行数据读取时对整个plist文件进行存储,且支持多种类型数据的存储。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种便利的存储方法的流程图;
图2为本发明实施例中一种便利的存储系统的结构示意图。
具体实施方式
本发明实施例提供一种便利的存储方法,通过创建可以分为多个文件的plist文件,并定义模型,当进行数据存储时,采用为定义的模型赋值的方式完成对数据的存储,避免进行数据读取时对整个plist文件进行存储,且支持多种类型数据的存储。本发明实施例相应地还提供了一种便利的存储系统、一种存储介质和电子设备。需要说明的是,本发明实施例的存储方法适用于iOS系统。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1所示,本发明实施例提供的一种便利的存储方法,具体包括以下步骤:
S1:创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件。userdefault类用于对轻量级的本地数据进行存储,以及对一些简单的数据(如NSString类型的数据)进行存储。initWithSuiteName方法用于进行应用间数据的共享。
通过调用initWithSuiteName方法进行plist文件的自定义创建,使得创建的plist文件能够被分为多个文件,实现plist文件的分割,从而使得在进行数据读取时,无需对整个plist文件进行操作,有效避免数据读取时对内存的消耗。
S2:定义继承于操作系统的模型,并在模型的头文件中进行属性的定义。本发明实施例中,在进行属性的定义时,定义的属性的数量与需要的属性数量相同。
S3:使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能;
通过底层的方法实现对setter方法的重写和转化,使得当需要进行数据的存储时,只需为模型赋值即可。相当于在底层对模型的赋值过程进行重写和改写,为后续可以实现便利的数据存储打下基础。setter方法用于对成员变量进行设置。getter方法用于为调用者返回对象内部的成员变量的值。
本发明实施例中,通过对setter方法和getter方法进行重写,使得重写后的对setter方法和getter方法可以实现遍历,当在进行遍历的时候便可以对数据进行存储和处理。
S4:将待存储数据导入所述模型中,基于重写的setter方法和getter方法为所述模型赋值以完成对待存储数据的存储。本发明实施例中,待存储数据的类型包括对象类型、数值类型和字符串类型。
通过创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件,然后定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义,使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能,即创建可以分为多个文件的plist文件,并定义模型,当进行数据存储时,采用为定义的模型赋值的方式完成对数据的存储,避免进行数据读取时对整个plist文件进行存储,且支持多种类型数据的存储。
在一种可能的实施方式中,创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件,具体步骤包括:
S101:定义suiteName,并将定义的suiteName置为nil(无值),完成userdefault类的创建。在正常的开放过程中一般都不会去主动创建userdefault类,本发明则是实现userdefault类的主动创建。suiteName表示对象的组名称。
S102:对定义的suiteName进行获取,以确定定义的suiteName存在。
S103:调用initWithSuiteName方法在创建的userdefault类中创建plist文件。即判断创建的userdefault类是否实现了initWithSuiteName方法,若实现了则通过suiteName方法获取到定义的suiteName,然后判断定义的suiteName是否存在,若存在,则调用initWithSuiteName方法在创建的userdefault类中创建plist文件,通过此种方式创建的plist文件能够被分为多个文件,实现plist文件的分割,使得在进行小数据的读取时,无需操作整个plist文件,在提升数据读取效率的同时,也减少了数据读取时对于内存的占用。
在一种可能的实施方式中,定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义,具体步骤包括:
S201:创建静态token(令牌),并基于dispatch_once方法在创建的静态token中创建static类型的模型;dispatch_once方法用于保证在应用程序执行中只执行一次指定处理的API。
S202:调用init方法对setupDefaultValues方法进行响应;init方法为初始化方法。init方法没有参数,init方法的内部实现过程为:首先调用父类的方法对init方法进行初始化,当init方法初始化完成后,判断init方法是否能够对setupDefaultValues方法进行响应。
S203:基于setupDefaultValues方法获取defaults字典,进行register方法的调用,在模型的头文件中进行属性的定义。register方法用于对变量进行定义。当init方法能够对setupDefaultValues方法进行响应时,便基于setupDefaultValues方法获取defaults字典,进行register方法的调用。本发明实施例中,userdefault类的创建发生在register方法的调用之前。
在一种可能的实施方式中,基于dispatch_once方法在创建的静态token中创建static类型的模型,具体步骤包括:
S2011:基于dispatch_once方法并调用self类的方法,在静态token中创建一个对象;
S2022:调用alloc方法为创建的对象分配内存,完成static类型的模型的创建。
本发明实施例的存储方法,通过定义一个单例DefaultModel,创建单例DefaultModel的函数为defaultModel,defaultModel函数没有参数,通过在defaultModel函数的内部实现一些基本的遍历存储的初始化操作和一些获取属性的操作,为后续的遍历存储打下基础。
在创建一个类的时候需要创建exchangeAccesss方法,exchangeAccesss方法通过一些处理可以实现直接对一个模型的存储,存储的核心主要是通过底层的方法获取到一个函数的属性名和方法名,对方法名和属性名进行底层实现存储,在外层的时候,可以直接实现对模型的存储。
在一种可能的实施方式中,使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能,具体步骤包括:
S301:定义无符号型的变量count,所述变量count用于对所述属性进行保存;
S302:通过class_copyPropertyList函数获取定义的变量count,以进行属性列表的获取。class_copyPropertyList函数返回的仅仅是对象类的属性。通过class_copyPropertyList函数获取得到定义的所有变量count,class_copyPropertyList函数有2个参数,其中一个参数用于表示类,另一个参数是一个count的指针,得到该参数之后便能得到属性列表。
S303:基于循环操作,在每个循环中通过索引函数对变量count中的属性getterKey以及属性名称setterKey进行获取。即当得到属性列表后,在变量count中保存属性的个数,并在该范围内进行一个循环的操作,在每个循环内部首先通过索引函数获取得到属性getterKey和属性名称setterKey。
S304:使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能。
通过底层的方法实现对setter方法的重写和转化,使得当需要进行数据的存储时,只需为模型赋值即可。相当于在底层对模型的赋值过程进行重写和改写,为后续可以实现便利的数据存储打下基础。,通过对setter方法和getter方法进行重写,使得重写后的对setter方法和getter方法可以实现遍历,当在进行遍历的时候便可以对数据进行存储和处理。
在一种可能的实施方式中,将待存储数据导入所述模型中,基于重写的setter方法和getter方法为所述模型赋值以完成对待存储数据的存储,具体步骤包括:
S401:调用setBoolValue方法,获取模型的默认值,所述默认值包括userdefault类的属性和变量;setBoolValue方法包含三个参数,第一个参数便是定义的模型。
S402:通过setBOOL方法将待存储数据导入模型中;当得到模型的默认值后,通过setBOOL方法将待存储数据导入模型中。
S403:调用synchronize方法,基于重写的setter方法和getter方法为模型赋值以完成对待存储数据的存储。
通过底层重写set方法和get方法,实现了便利的存储,在使用的时候只需要为模型赋值即可,底层对set方法和get方法进行重写,保证了存储的便利,有效提升数据存储的效率。
通过定义一个模型,让定义的模型继承于操作系统,并在定义的模型的头文件中定义属性,需要多少个属便定义多少个属性,同时需要设置suiteName的名字。当需要进行数据时,直接导入模型,通过默认的方法userDefaultsModel方法拿到这个模型之后,通过set方法就可以完成数据的存储,而常规的数据存储方式,通过standeruserdefault方法拿到标准的userdefault再向里面存储数据,存储的数据不能存储模型,且存储的数据是一个大的plist文件。
本发明实施例的便利的存储方法,通过创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件,然后定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义,使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能,即创建可以分为多个文件的plist文件,并定义模型,当进行数据存储时,采用为定义的模型赋值的方式完成对数据的存储,避免进行数据读取时对整个plist文件进行存储,且支持多种类型数据的存储。
本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述实施例所述的便利的存储方法的步骤。
本发明实施例还提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述所述的便利的存储方法的步骤。具体实现以下步骤:
创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件;
定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义;
使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能;
将待存储数据导入所述模型中,基于重写的setter方法和getter方法为所述模型赋值以完成对待存储数据的存储。
本发明实施例中,创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件,具体步骤包括:
定义suiteName,并将定义的suiteName置为nil,完成userdefault类的创建;
对定义的suiteName进行获取,以确定定义的suiteName存在;
调用initWithSuiteName方法在创建的userdefault类中创建plist文件。
本发明实施例中,定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义,具体步骤包括:
创建静态token,并基于dispatch_once方法在创建的静态token中创建static类型的模型;
调用init方法对setupDefaultValues方法进行响应;
基于setupDefaultValues方法获取defaults字典,进行register方法的调用,在模型的头文件中进行属性的定义。
本发明实施例中,基于dispatch_once方法在创建的静态token中创建static类型的模型,具体步骤包括:
基于dispatch_once方法并调用self类的方法,在静态token中创建一个对象;
调用alloc方法为创建的对象分配内存,完成static类型的模型的创建。
通过创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件,然后定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义,使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能,即创建可以分为多个文件的plist文件,并定义模型,当进行数据存储时,采用为定义的模型赋值的方式完成对数据的存储,避免进行数据读取时对整个plist文件进行存储,且支持多种类型数据的存储。
本发明实施例中,存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
参见图2所示,本发明实施例提供的一种便利的存储系统,包括创建模块、定义模块、重写模块和存储模块。创建模块用于创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件;定义模块用于定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义;重写模块用于使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能;存储模块用于将待存储数据导入所述模型中,基于重写的setter方法和getter方法为所述模型赋值以完成对待存储数据的存储。
本发明实施例的便利的存储系统,通过创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件,然后定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义,使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能,即创建可以分为多个文件的plist文件,并定义模型,当进行数据存储时,采用为定义的模型赋值的方式完成对数据的存储,避免进行数据读取时对整个plist文件进行存储,且支持多种类型数据的存储。
需要说明的是,在本申请中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
Claims (10)
1.一种便利的存储方法,其特征在于,包括以下步骤:
创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件;
定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义;
使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能;
将待存储数据导入所述模型中,基于重写的setter方法和getter方法为所述模型赋值以完成对待存储数据的存储。
2.如权利要求1所述的一种便利的存储方法,其特征在于,所述创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件,具体步骤包括:
定义suiteName,并将定义的suiteName置为nil,完成userdefault类的创建;
对定义的suiteName进行获取,以确定定义的suiteName存在;
调用initWithSuiteName方法在创建的userdefault类中创建plist文件。
3.如权利要求2所述的一种便利的存储方法,其特征在于,所述定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义,具体步骤包括:
创建静态token,并基于dispatch_once方法在创建的静态token中创建static类型的模型;
调用init方法对setupDefaultValues方法进行响应;
基于setupDefaultValues方法获取defaults字典,进行register方法的调用,在模型的头文件中进行属性的定义。
4.如权利要求3所述的一种便利的存储方法,其特征在于,所述基于dispatch_once方法在创建的静态token中创建static类型的模型,具体步骤包括:
基于dispatch_once方法并调用self类的方法,在静态token中创建一个对象;
调用alloc方法为创建的对象分配内存,完成static类型的模型的创建。
5.如权利要求3所述的一种便利的存储方法,其特征在于,所述使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能,具体步骤包括:
定义无符号型的变量count,所述变量count用于对所述属性进行保存;
通过class_copyPropertyList函数获取定义的变量count,以进行属性列表的获取;
基于循环操作,在每个循环中通过索引函数对变量count中的属性getterKey以及属性名称setterKey进行获取;
使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能。
6.如权利要求4所述的一种便利的存储方法,其特征在于,所述将待存储数据导入所述模型中,基于重写的setter方法和getter方法为所述模型赋值以完成对待存储数据的存储,具体步骤包括:
调用setBoolValue方法,获取模型的默认值,所述默认值包括userdefault类的属性和变量;
通过setBOOL方法将待存储数据导入模型中;
调用synchronize方法,基于重写的setter方法和getter方法为模型赋值以完成对待存储数据的存储。
7.如权利要求1所述的一种便利的存储方法,其特征在于:所述待存储数据的类型包括对象类型、数值类型和字符串类型。
8.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。
10.一种便利的存储系统,其特征在于,包括:
创建模块,其用于创建userdefault类,并调用initWithSuiteName方法在创建的userdefault类中创建plist文件;
定义模块,其用于定义继承于操作系统的模型,并在所述模型的头文件中进行属性的定义;
重写模块,其用于使用方法增加函数对setter方法和getter方法进行重写,在setter方法和getter方法中增加遍历功能;
存储模块,其用于将待存储数据导入所述模型中,基于重写的setter方法和getter方法为所述模型赋值以完成对待存储数据的存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111581217.2A CN114218171A (zh) | 2021-12-22 | 2021-12-22 | 一种便利的存储方法、电子设备、存储介质及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111581217.2A CN114218171A (zh) | 2021-12-22 | 2021-12-22 | 一种便利的存储方法、电子设备、存储介质及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114218171A true CN114218171A (zh) | 2022-03-22 |
Family
ID=80705227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111581217.2A Pending CN114218171A (zh) | 2021-12-22 | 2021-12-22 | 一种便利的存储方法、电子设备、存储介质及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114218171A (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6336211B1 (en) * | 1999-05-20 | 2002-01-01 | Xilinx, Inc. | Method and apparatus for implementing type-safe heterogeneous property lists |
US20110264703A1 (en) * | 2010-04-27 | 2011-10-27 | Microsoft Corporation | Importing Tree Structure |
US20130061205A1 (en) * | 2011-09-07 | 2013-03-07 | International Business Machines Corporation | Automated generation of bridging code to augment a legacy application using an object-oriented language |
US20130238628A1 (en) * | 2012-03-06 | 2013-09-12 | International Business Machines Corporation | Refreshing a full-text search index in a partitioned database |
US20130325886A1 (en) * | 2012-06-01 | 2013-12-05 | Adobe Systems Inc. | Method and apparatus for automated display of documentation |
US20150113042A1 (en) * | 2013-10-23 | 2015-04-23 | Sap Ag | Open user interface |
US20160004850A1 (en) * | 2014-07-02 | 2016-01-07 | Aswin Kumar Jayaraman | Secure download from internet marketplace |
US20160099826A1 (en) * | 2014-10-07 | 2016-04-07 | Google Inc. | Systems and methods for updating data across multiple network architectures |
CN105740390A (zh) * | 2016-01-27 | 2016-07-06 | 四川秘无痕信息安全技术有限责任公司 | 一种逆向提取plist格式数据的方法 |
CN108874495A (zh) * | 2018-06-25 | 2018-11-23 | 北京金山安全软件有限公司 | 一种主题资源转换方法、装置及电子设备 |
CN112579151A (zh) * | 2019-09-30 | 2021-03-30 | 北京京东尚科信息技术有限公司 | 一种模型文件的生成方法和装置 |
CN112631646A (zh) * | 2020-12-18 | 2021-04-09 | 平安普惠企业管理有限公司 | App版本降级的数据兼容方法、装置、设备及存储介质 |
CN113590566A (zh) * | 2021-06-23 | 2021-11-02 | 河海大学 | 基于堆结构的SequenceFile存储优化方法、装置、设备及存储介质 |
-
2021
- 2021-12-22 CN CN202111581217.2A patent/CN114218171A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6336211B1 (en) * | 1999-05-20 | 2002-01-01 | Xilinx, Inc. | Method and apparatus for implementing type-safe heterogeneous property lists |
US20110264703A1 (en) * | 2010-04-27 | 2011-10-27 | Microsoft Corporation | Importing Tree Structure |
US20130061205A1 (en) * | 2011-09-07 | 2013-03-07 | International Business Machines Corporation | Automated generation of bridging code to augment a legacy application using an object-oriented language |
US20130238628A1 (en) * | 2012-03-06 | 2013-09-12 | International Business Machines Corporation | Refreshing a full-text search index in a partitioned database |
US20130325886A1 (en) * | 2012-06-01 | 2013-12-05 | Adobe Systems Inc. | Method and apparatus for automated display of documentation |
US20150113042A1 (en) * | 2013-10-23 | 2015-04-23 | Sap Ag | Open user interface |
US20160004850A1 (en) * | 2014-07-02 | 2016-01-07 | Aswin Kumar Jayaraman | Secure download from internet marketplace |
US20160099826A1 (en) * | 2014-10-07 | 2016-04-07 | Google Inc. | Systems and methods for updating data across multiple network architectures |
CN105740390A (zh) * | 2016-01-27 | 2016-07-06 | 四川秘无痕信息安全技术有限责任公司 | 一种逆向提取plist格式数据的方法 |
CN108874495A (zh) * | 2018-06-25 | 2018-11-23 | 北京金山安全软件有限公司 | 一种主题资源转换方法、装置及电子设备 |
CN112579151A (zh) * | 2019-09-30 | 2021-03-30 | 北京京东尚科信息技术有限公司 | 一种模型文件的生成方法和装置 |
CN112631646A (zh) * | 2020-12-18 | 2021-04-09 | 平安普惠企业管理有限公司 | App版本降级的数据兼容方法、装置、设备及存储介质 |
CN113590566A (zh) * | 2021-06-23 | 2021-11-02 | 河海大学 | 基于堆结构的SequenceFile存储优化方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
朱斌;: "基于番茄法则的时间管理APP软件开发", 浙江树人大学学报(自然科学版), no. 01, 15 March 2017 (2017-03-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019200748B2 (en) | Immutable object types | |
CN111782300B (zh) | 一种数据处理方法、装置、设备及系统 | |
CN111124480B (zh) | 应用程序包的生成方法、装置、电子设备及存储介质 | |
CN109815680A (zh) | 应用权限的管理方法、装置、终端设备及存储介质 | |
US20200274758A1 (en) | Provisioning hybrid cloud resources in an operating environment | |
CN113778445A (zh) | 一种跨平台组件生成方法、装置、电子设备及存储介质 | |
CN110908707A (zh) | 一种资源打包方法、装置、服务器及存储介质 | |
CN105094878A (zh) | 一种集成系统库文件的方法和装置 | |
CN113504918A (zh) | 设备树配置优化方法、装置、计算机设备和存储介质 | |
CN111475148A (zh) | 第三方依赖库隔离方法及装置、电子设备、存储介质 | |
CN113961179A (zh) | Soar平台的服务接入方法、系统、电子装置和存储介质 | |
CN114218171A (zh) | 一种便利的存储方法、电子设备、存储介质及系统 | |
CN109409037B (zh) | 一种数据混淆规则的生成方法、装置及设备 | |
CN110333870B (zh) | Simulink模型变量分配的处理方法、装置及设备 | |
CN117149153A (zh) | 业务数据模型的生成方法、装置、计算机设备以及介质 | |
CN114625372A (zh) | 组件自动编译方法、装置、计算机设备及存储介质 | |
CN112650598A (zh) | 一种用于工作流系统的多应用接入方法 | |
CN113448585A (zh) | 一种对线程池的优化方法、装置、电子设备和存储介质 | |
CN112306584A (zh) | 一种应用程序运行控制方法、装置、介质和设备 | |
CN113656009A (zh) | 一种宏处理方法、装置、电子设备及存储介质 | |
CN112749159A (zh) | 表单生成方法、装置、电子设备及存储介质 | |
CN112068814A (zh) | 可执行文件的生成方法、装置、系统及介质 | |
CN111198899A (zh) | 应用程序中实体渲染的开发系统及方法 | |
CN113687973B (zh) | 一种日志动态化输出的控制方法、设备及介质 | |
Bachelet et al. | Designing expression templates with concepts |
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 |