麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

數據管理方法及裝置與流程

文檔序號:12664771閱讀:229來源:國知局
數據管理方法及裝置與流程

本發明涉及計算機技術領域,更具體地,涉及一種數據管理方法及裝置。



背景技術:

隨著互聯網的深入發展,觀看視頻直播的用戶越來越多。其中,直播頁面是一個直播app最復雜且最核心的頁面,這個頁面包含許多功能,比如彈幕、聊天、發送禮物、接收禮物、充值、屏蔽用戶、舉報用戶、觀看直播、設置播放器亮度、調節播放器聲音及屏幕的旋轉方向等等超過30種不同的功能。這么多功能寫在一個UIViewController(界面控制器,蘋果開發語言中存放代碼的主要容器)里面,隨著版本地迭代及未來對直播頁面進行功能擴充,這個容器里面的代碼會上萬行甚至幾萬行。一個上萬行代碼的控制器是不便于開發人員繼續維護開發的,也不利于在這個版本上面繼續擴充功能。

其中,在一個上萬行代碼的UIViewController里包含有大量的宏定義、常量、枚舉、頭文件、分類頭文件及屬性等。如果這些數據都放在控制器里面,會在一定的程度上造成控制器的代碼冗余。另外,當其它頁面需要調用這些數據時,也會非常不方便。因此,在工程項目角度上急需一種數據管理方法。



技術實現要素:

本發明提供一種克服上述問題或者至少部分地解決上述問題的數據管理方法及裝置。

根據本發明的一方面,提供了一種數據管理方法,該方法包括:

基于目標工程項目下數據的類型,生成相應的頭文件,目標工程項目為應用開發工程項目;

當檢測到任一數據的調用指令時,在目標工程項目中導入任一數據相應的頭文件。

根據本發明的另一方面,提供了一種數據管理裝置,該裝置包括:

第一生成模塊,用于基于目標工程項目下數據的類型,生成相應的頭文件,目標工程項目為應用開發工程項目;

導入模塊,用于當檢測到任一數據的調用指令時,在目標工程項目中導入任一數據相應的頭文件。

本申請提出的技術方案帶來的有益效果是:

通過基于目標工程項目下數據的類型,生成相應的頭文件。當檢測到任一數據的調用指令時,在目標工程項目中導入任一數據相應的頭文件。由于可將預設控制器中不同類型的數據導入到相應的頭文件中,從而避免了數據暴露在預設控制器中,提高了數據的安全性。

其次,由于經常需要調用的公有頭文件等公有數據放入到相應的預編譯頭文件,從而后續無需重復導入這些公有數據,只需引用預編譯頭文件即可,從而提高了后續代碼編譯時的速度,減少了代碼冗余。

附圖說明

圖1為本發明實施例的一種數據管理方法的流程示意圖;

圖2為本發明實施例的一種數據管理方法的流程示意圖;

圖3為本發明實施例的一種數據管理裝置的結構示意圖。

具體實施方式

下面結合附圖和實施例,對本發明的具體實施方式作進一步詳細描述。以下實施例用于說明本發明,但不用來限制本發明的范圍。

隨著應用頁面包含的功能越來越多,若這么多功能寫在一個UIViewController(界面控制器,蘋果開發語言中存放代碼的主要容器)里面,隨著版本地迭代及未來對應用頁面進行功能擴充,這個容器里面的代碼會上萬行甚至幾萬行。一個上萬行代碼的控制器是不便于開發人員繼續維護開發的,也不利于在這個版本上面繼續擴充功能。這會造成控制器代碼冗余,且當其它頁面需要調用這些數據時,也會非常不方便。

另外,由于隨著工程項目版本的迭代開發,工程目錄下的資源也不斷地替換,從而導致若不能及時刪除每一版本所遺留下的無用文件,工程目錄下的無用文件資源會越積越多。其中,工程項目為應用開發工程項目。例如,iOS項目需要依賴大量的資源圖片,項目的開發和迭代會有大量圖片資源需要刪除,在大型項目中甚至超過2000張圖片。這些圖片若不能及時刪除,累積久了會造成后續項目開發可使用的存儲空間不足。因此,需要對無用數據進行刪除。

針對現有技術中的問題,本發明實施例提供了一種數據管理方法。基于上述內容,參見圖1,本實施例提供的方法流程包括:101、基于目標工程項目下數據的類型,生成相應的頭文件;102、當檢測到任一數據的調用指令時,在目標工程項目中導入任一數據相應的頭文件。

其中,目標工程項目為應用開發工程項目。由于應用開發工程項目通常數量較多,從而可將其中一個需要進行數據管理的應用開發工程項目作為目標應用開發工程項目。

本發明實施例提供的方法,通過基于目標工程項目下數據的類型,生成相應的頭文件。當檢測到任一數據的調用指令時,在目標工程項目中導入任一數據相應的頭文件。由于可將預設控制器中不同類型的數據導入到相應的頭文件中,從而避免了數據暴露在預設控制器中,提高了數據的安全性。

其次,由于經常需要調用的公有頭文件等公有數據放入到相應的預編譯頭文件,從而后續無需重復導入這些公有數據,只需引用預編譯頭文件即可,從而提高了后續代碼編譯時的速度,減少了代碼冗余。

作為一種可選實施例,數據包括預設控制器專有的宏定義、常量或枚舉變量,基于目標工程項目下數據的類型,生成相應的頭文件之前,包括:

基于創建頭文件的第一指令,創建第一頭文件;

基于目標工程項目下數據的類型,生成相應的頭文件,包括:

將預設控制器專有的宏定義、常量或枚舉變量,導入到第一頭文件中。

作為一種可選實施例,數據為預設控制器依賴的分類頭文件或非分類頭文件,基于目標工程項目下數據的類型,生成相應的頭文件之前,包括:

基于創建頭文件的第二指令,創建第二頭文件;

基于創建頭文件的第三指令,創建第三頭文件;

基于目標工程項目下數據的類型,生成相應的頭文件,包括:

將預設控制器依賴的分類頭文件中的內容,導入到第二頭文件中;

將預設控制器依賴的非分類頭文件中的內容,導入到第三頭文件中。

作為一種可選實施例,數據為屬性值,基于目標工程項目下數據的類型,生成相應的頭文件,包括:

確定屬性值對應的類;

將屬性值導入到類對應的頭文件中。

作為一種可選實施例,數據為公有宏定義、公有常量、公有枚舉變量或公有頭文件,基于目標工程項目下數據的類型,生成相應的頭文件,包括:

根據目標工程項目的名稱,創建預編譯頭文件;

將公有宏定義、公有常量、公有枚舉變量或公有頭文件中的內容導入到預編譯頭文件中。

作為一種可選實施例,該方法還包括:

查找目標工程目錄下指定文件后綴名對應的目標文件,目標工程目錄為目標工程項目對應的工程目錄;

確定查找結果中目標工程項目代碼未引用的目標文件;

刪除未引用的目標文件。

作為一種可選實施例,查找目標工程目錄下指定文件后綴名對應的目標文件之前,包括:

基于用戶輸入的命令行命令,定位到當前的操作目錄,并將操作目錄作為目標工程目錄。

作為一種可選實施例,查找目標工程目錄下指定文件后綴名對應的目標文件,包括:

基于預設正則表達式,將目標工程目錄下文件的文件信息與指定文件后綴名進行匹配,將匹配成功的文件作為目標文件;

根據目標文件對應的文件信息生成文件信息列表,并作為查找結果。

作為一種可選實施例,確定查找結果中目標工程項目代碼未引用的目標文件,包括:

對于文件信息列表中任一文件信息對應的任一目標文件,查找目標工程項目代碼中是否包含任一文件信息;

當包含任一文件信息時,確定目標工程項目代碼引用任一目標文件;

當不包含任一文件信息時,確定目標工程項目代碼未引用任一目標文件。

上述所有可選技術方案,可以采用任意結合形成本發明的可選實施例,在此不再一一贅述。

由于工程項目下許多功能都會寫在預設控制器里,如直播下的許多功能代碼都會寫在UIViewController這個界面控制器里,這會造成大量數據都放在這個預設控制器里,并導致代碼冗余,從而需要對工程項目下的數據進行管理。另外,工程項目下通常還有許多沒有被工程項目代碼引用的無用文件,從而需要對這些文件進行刪除。

基于上述內容及圖1對應實施例中的內容,本發明實施例提供了一種數據管理方法。參見圖2,該方法包括:201、基于目標工程項目下數據的類型,生成相應的頭文件;202、當檢測到任一數據的調用指令時,在目標工程項目中導入任一數據相應的頭文件;203、基于用戶輸入的命令行命令,定位到當前的操作目錄,并將操作目錄作為目標工程目錄;204、查找目標工程目錄下指定文件后綴名對應的目標文件;205、確定查找結果中目標工程項目代碼未引用的目標文件;206、刪除未引用的目標文件。

其中,201、基于目標工程項目下數據的類型,生成相應的頭文件。

在本步驟中,目標工程項目為應用開發工程項目。由于目標工程項目下的數據類型很多,現針對每一類型的數據,對本步驟中生成相應頭文件的過程進行闡述。

(1)數據包括預設控制器專有的宏定義、常量或枚舉變量。

其中,預設控制器可以為界面控制器UIViewController,本實施例對此不作具體限定。數據可以為上述三種數據的一種或多種,本實施例對此也不作具體限定。

在執行本步驟之前,可基于創建頭文件的第一指令,創建第一頭文件。具體地,以預設控制器為DYNewPlayer控制器為例。

在蘋果開發工具xcode中,點擊左上角菜單“File”->“New File”->“Header File”,在出現的界面中點擊”Next”,輸入文件名“DYNewPlayerConstant.h”就可以創建出一個頭文件,即第一頭文件。

相應地,可將DYNewPlayer控制器專有的宏定義、常量或枚舉變量導入到“DYNewPlayerConstant.h”這個頭文件中。

(2)數據為預設控制器依賴的分類頭文件或非分類頭文件。

在執行本步驟之前,可基于創建頭文件的第二指令,創建第二頭文件;基于創建頭文件的第三指令,創建第三頭文件。

具體地,同樣可按照上述創建頭文件的過程,分別創建兩個頭文件。創建DYNewPlayerCategor.h這個頭文件作為第二頭文件,創建DYNewPlayerBaseHeader.h這個頭文件作為第三頭文件。

其中,可將預設控制器DYNewPlayer所依賴的分類頭文件中的內容,導入到DYNewPlayerCategor.h中。將預設控制器DYNewPlayer所依賴的非分類頭文件中的內容,導入到DYNewPlayerBaseHeader.h中。

(3)數據為屬性值。

一般情況下,屬性值均在預設控制器的.m文件中。在本實施例中,基于分類訪問的原則,可將屬性值放到類的.h文件中,以便于后續分類調用這些屬性值。

相應地,可先確定屬性值對應的類,再將屬性值導入到類對應的頭文件中。

(4)數據為公有宏定義、公有常量、公有枚舉變量或公有頭文件。

其中,數據可以為上述四種數據的一種或多種,本實施例對此不作具體限定。

公有頭文件通常數量較多,通常工程項目中許多控制器都需要調用公有頭文件。例如,對于公有頭文件UserDefaults.h,50%以上的控制器需要導入這個頭文件。如果每個控制器都導入所有需要調用的公有頭文件,這會造成極大的代碼冗余。對于這種情況,可根據目標工程項目的名稱,創建預編譯頭文件,即pch文件。將公有頭文件放入到創建的pch文件中。

具體地,可打開工程項目的xcode工程文件。點擊找到項目工程的Supporting Files目錄,在這個目錄下創建pch文件。選擇“File”->New->File->iOS->other,然后點擊下一步。

點擊下一步之后可輸入一個名稱,如果工程項目的名稱是DYLive,那么pch文件的名稱可以為DYLive-Prefix.pch。確定pch文件的名稱后,可點擊創建按鈕創建pch文件。

點擊xcode中的工程Project,選擇Build Settings,然后在xcode的搜索界面搜索Prefix Header。

在xcode里面找到Apple LLVM 6.0,找到這個欄目后可看到Prefix Header的關鍵字,在這里點擊輸入$(SRCROOT)/YourProject-Prefix.pch。

點擊輸入完成后,可在Precompile Prefix Header對應的選項上選擇YES。經過上述處理后,預編譯后的PCH文件可被緩存,從而可以大大提高編譯速度。

pch文件創建和配置完成之后,可Clean整個xcode工程項目,也可以通過快捷鍵caps+command+k來build整個工程文件。通過上述過程,可完成pch文件的創建和配置。

預編譯頭文件pch創建和配置完畢后,可將公有宏定義、公有常量、公有枚舉變量或公有頭文件中的內容導入到預編譯頭文件中。由于公有頭文件的內容已經導入到了pch文件中,從而可刪除工程項目中已經導入的公有頭文件,本實施例對此不作具體限定。

上述步驟201至步驟202,主要是將不同類型的數據進行分類管理,將不同類型的數據導入到相應的頭文件中。由于隨著工程項目在開發過程的推進,工程項目的版本也在不斷地迭代。相應地,工程項目中的文件資源也不斷地被替換。由于工程項目版本更新通常較快,之前版本遺留下的無用文件資源會越積越多,從而為了避免后續產生存儲空間不足的問題,需要對無用文件進行刪除。

基于上述內容,本實施例的后續步驟基于數據管理中數據刪除角度,提出了一種數據刪除方法,詳見后續步驟中的內容。

其中,203、基于用戶輸入的命令行命令,定位到當前的操作目錄,并將操作目錄作為目標工程目錄。

在本步驟中,目標工程目錄為目標工程項目對應的工程目錄。本步驟及后續步驟的實施基礎均為通過執行腳本文件來對無用數據進行刪除,本步驟及后續步驟主要基于腳本文件對無用數據進行刪除的過程進行說明。其中,腳本文件可以為.sh后綴名的shell腳本,本實施例不對腳本文件的類型作具體限定。其中,目標工程目錄為腳本文件執行的目錄。

由上述內容可知,由于腳本文件需要在指定目錄下執行,以刪除指定目錄下的無用文件,從而在本步驟中可接受用戶輸入的命令行命令,定位到用戶所需的目錄,即當前的操作目錄。例如,用戶可通過輸入cd命令不斷退出每一級目錄,直到工程項目的根目錄。此時,工程項目的根目錄即為目標工程目錄。

其中,204、查找目標工程目錄下指定文件后綴名對應的目標文件。

由于需要刪除的無用文件通常具有一定共性,如無用文件通常為之前版本遺留下的圖像文件,從而無用文件通常為帶有圖像格式后綴名的文件。在執行本步驟之前,可在腳本文件中指定文件后綴名,如png、jpg或bmp等等。當然,文件后綴名除了圖像文件對應的后綴名之外,還可以為xcode中的xib文件后綴名,本實施例不對文件后綴名的類型作具體限定。

本實施例不對查找目標工程目錄下指定文件后綴名對應的目標文件的方式作具體限定,包括但不限于:基于預設正則表達式,將目標工程目錄下文件的文件信息與指定文件后綴名進行匹配,將匹配成功的文件作為目標文件;根據目標文件對應的文件信息生成文件信息列表,并作為查找結果。其中,文件信息至少包括文件名及文件后綴名,本實施例對此不作具體限定。

在上述查找過程中,并未采用現有技術常用的字符串匹配方式,而是通過正則表達式,將文件信息與文件后綴名進行匹配。由于在通過正則表達式進行匹配時,相較于字符串匹配,底層編譯器的編譯效率較高,從而提高了文件刪除時的效率。

其中,205、確定查找結果中目標工程項目代碼未引用的目標文件。

在上述步驟204中,主要是找出工程項目中指定文件后綴名對應的所有文件。這些文件在當前版本的目標工程項目代碼中,有的可能會被引用,有的可能沒有被引用。其中,沒有被引用的文件即為需要被刪除的文件。在本步驟中,需要確認目標工程項目代碼中哪些文件需要被刪除。

基于上述步驟204中的內容,本實施例不對確定查找結果中目標工程項目代碼未引用的目標文件的方式作具體限定,包括但不限于:對于文件信息列表中任一文件信息對應的任一目標文件,查找目標工程項目代碼中是否包含任一文件信息;當包含任一文件信息時,確定目標工程項目代碼引用任一目標文件;當不包含任一文件信息時,確定目標工程項目代碼未引用任一目標文件。

例如,以文件后綴名為png為例。在目標工程項目代碼中通常會以如下方式來引用某一圖像文件,如“a.png”。當引用了某一圖像文件時,目標工程項目代碼中通常會包含該圖像文件的文件名及文件后綴名,即文件信息。相應地,當目標工程項目代碼中包含某一文件信息時,則可確定目標工程項目代碼中引用了該文件信息對應的文件。反之,則沒有引用。

通過本步驟,可確認在目標工程目錄下的所有文件中,有哪些文件目標工程項目代碼在引用,哪些文件目標工程項目代碼沒有在引用,從而可得到所有沒被引用文件對應的文件信息,以便于后續進行刪除。在本步驟中,文件信息還可以包括文件所在的具體目錄。

其中,206、刪除未引用的目標文件。

由于考慮到用戶可能需要查看有哪些文件沒被引用,或者需要了解大概有多少文件沒被引用,從而在執行本步驟之前,還可以根據未引用目標文件對應的文件信息生成文本文件,顯示文本文件中的內容,本實施例對此不作具體限定。通過該過程,能便于用戶了解有哪些文件沒被引用。上述步驟及本步驟均為腳本文件的具體執行過程,當腳本文件執行完畢時,工程項目代碼沒有引用的所有無用文件都會被刪掉。

上述步驟203至步驟206主要為數據刪除的過程,數據刪除的過程也屬于數據管理中的一環。但需要說明的是,上述步驟203至步驟206中的內容可以先于上述步驟201及步驟202執行。當然,也可以按照本實施例的描述方式,在上述步驟201與步驟202執行完畢后,再執行步驟203至步驟206,本實施例對此不作具體限定。

本發明實施例提供的方法,通過基于目標工程項目下數據的類型,生成相應的頭文件。當檢測到任一數據的調用指令時,在目標工程項目中導入任一數據相應的頭文件。由于可將預設控制器中不同類型的數據導入到相應的頭文件中,從而避免了數據暴露在預設控制器中,提高了數據的安全性。

其次,由于經常需要調用的公有頭文件等公有數據放入到相應的預編譯頭文件,從而后續無需重復導入這些公有數據,只需引用預編譯頭文件即可,從而提高了后續代碼編譯時的速度,減少了代碼冗余。

從次,通過基于用戶輸入的命令行命令,定位到當前的操作目錄,并將操作目錄作為目標工程目錄。查找目標工程目錄下指定文件后綴名對應的目標文件。確定查找結果中目標工程項目代碼未引用的目標文件,刪除未引用的目標文件。由于可直接基于文件后綴名,確定哪些無用文件沒有被引用且需要被刪除。因此,文件刪除時的準確率較高,效果較好。

另外,由于可通過執行腳本文件的方式,統一刪除所有的無用文件,從而提高了文件刪除時的效率。

最后,由于在查找指定文件后綴名的文件時,是通過正則表達式進行匹配,相較于字符串匹配,底層編譯器的編譯效率較高,從而進一步地提高了文件刪除時的效率。

本發明實施例提供了一種數據管理裝置,該裝置用于執行上述圖1或圖2對應實施例所提供的數據管理方法。參見圖3,該裝置包括:

第一生成模塊301,用于基于目標工程項目下數據的類型,生成相應的頭文件,目標工程項目為應用開發工程項目;

導入模塊302,用于當檢測到任一數據的調用指令時,在目標工程項目中導入任一數據相應的頭文件。

作為一種可選實施例,數據包括預設控制器專有的宏定義、常量或枚舉變量,該裝置還包括:

第一創建模塊,用于基于創建頭文件的第一指令,創建第一頭文件;

該第一生成模塊301,用于將預設控制器專有的宏定義、常量或枚舉變量,導入到第一頭文件中。

作為一種可選實施例,數據為預設控制器依賴的分類頭文件或非分類頭文件,該裝置還包括:

第二創建模塊,用于基于創建頭文件的第二指令,創建第二頭文件;基于創建頭文件的第三指令,創建第三頭文件;

該第一生成模塊301,用于將預設控制器依賴的分類頭文件中的內容,導入到第二頭文件中;將預設控制器依賴的非分類頭文件中的內容,導入到第三頭文件中。

作為一種可選實施例,數據為屬性值,第一生成模塊301,用于確定屬性值對應的類;將屬性值導入到類對應的頭文件中。

作為一種可選實施例,數據為公有宏定義、公有常量、公有枚舉變量或公有頭文件,第一生成模塊301,用于根據目標工程項目的名稱,創建預編譯頭文件;將公有宏定義、公有常量、公有枚舉變量或公有頭文件中的內容導入到預編譯頭文件中。

作為一種可選實施例,該裝置還包括:

查找模塊,用于查找目標工程目錄下指定文件后綴名對應的目標文件,目標工程目錄為目標工程項目對應的工程目錄;

確定模塊,用于確定查找結果中目標工程項目代碼未引用的目標文件;

刪除模塊,用于刪除未引用的目標文件。

作為一種可選實施例,該裝置還包括:

定位模塊,用于基于用戶輸入的命令行命令,定位到當前的操作目錄,并將操作目錄作為目標工程目錄。

作為一種可選實施例,查找模塊,用于基于預設正則表達式,將目標工程目錄下文件的文件信息與指定文件后綴名進行匹配,將匹配成功的文件作為目標文件;根據目標文件對應的文件信息生成文件信息列表,并作為查找結果。

作為一種可選實施例,確定模塊,用于對于文件信息列表中任一文件信息對應的任一目標文件,查找目標工程項目代碼中是否包含任一文件信息;當包含任一文件信息時,確定目標工程項目代碼引用任一目標文件;當不包含任一文件信息時,確定目標工程項目代碼未引用任一目標文件。

作為一種可選實施例,該裝置還包括:

第二生成模塊,用于根據未引用目標文件對應的文件信息,生成文本文件;

顯示模塊,用于顯示文本文件中的內容。

本發明實施例提供的裝置,通過基于目標工程項目下數據的類型,生成相應的頭文件。當檢測到任一數據的調用指令時,在目標工程項目中導入任一數據相應的頭文件。由于可將預設控制器中不同類型的數據導入到相應的頭文件中,從而避免了數據暴露在預設控制器中,提高了數據的安全性。

其次,由于經常需要調用的公有頭文件等公有數據放入到相應的預編譯頭文件,從而后續無需重復導入這些公有數據,只需引用預編譯頭文件即可,從而提高了后續代碼編譯時的速度,減少了代碼冗余。

從次,通過基于用戶輸入的命令行命令,定位到當前的操作目錄,并將操作目錄作為目標工程目錄。查找目標工程目錄下指定文件后綴名對應的目標文件。確定查找結果中目標工程項目代碼未引用的目標文件,刪除未引用的目標文件。由于可直接基于文件后綴名,確定哪些無用文件沒有被引用且需要被刪除。因此,文件刪除時的準確率較高,效果較好。

另外,由于可通過執行腳本文件的方式,統一刪除所有的無用文件,從而提高了文件刪除時的效率。

最后,由于在查找指定文件后綴名的文件時,是通過正則表達式進行匹配,相較于字符串匹配,底層編譯器的編譯效率較高,從而進一步地提高了文件刪除時的效率。

最后,本申請的方法僅為較佳的實施方案,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 鹤壁市| 东丽区| 珠海市| 兴业县| 句容市| 琼中| 城口县| 福建省| 麟游县| 蒙城县| 丰都县| 普宁市| 阿克苏市| 大田县| 雅安市| 墨江| 梅河口市| 沂源县| 封开县| 昌都县| 峨山| 兴海县| 元氏县| 饶河县| 武清区| 普兰县| 图木舒克市| 临洮县| 会东县| 江孜县| 平凉市| 昂仁县| 京山县| 长沙市| 南召县| 浦北县| 萍乡市| 铁岭县| 汪清县| 神木县| 叙永县|