iOS專案本地儲存NSUserDefault的改進

2021-08-08 15:11:53 字數 1820 閱讀 7541

隨著專案的體積增加,功能增多,從一開始幾個地方使用。到多個地方使用,甚至有幾十處,反正就是有需要的時候就拿來用一下,反正a和b同時管理專案的時候注意儲存時存入不同的key值就可以了。

但是這樣至少讓專案看起來不美觀,整理的時候有一種雜亂的感覺,有的同學說,那我用乙個管理類統一管理。把setvalueforkey和getvalueforkey寫成乙個方法,外面統一呼叫這倆方法進行訪問,想檢視整個專案有何處使用的時候全域性搜這倆方法的使用就行了。當然這也可以,不過還是不夠好。我說一下我的解決方法。

思路:我每次進行訪問的時候,通過乙個方法,在管理類建立乙個我要進行訪問的屬性。然後對該屬性進行set和get方法。通過setget方法呼叫setvalueforkey和getvalueforkey,這樣外部每次想要存值得時候,在管理類處通過巨集來宣告一下就行,在相關頁面呼叫set方法存值,取值就行了。

上**1. 在管理類宣告乙個建立屬性的巨集

這樣寫,以後我需要建立新的鍵值對訪問的時候,在該類裡面通過create_setget_utils_h 這個方法將想要的格式,屬性強弱,名字,寫進去就會建立這樣乙個屬性。

2. 在.m檔案中

首先,比如我在.h內 呼叫方法create_setget_utils_h(nsstring *, strong, isopenshake);//推送訊息。是否開啟震動

就會建立乙個屬性,相當於寫了乙個:

@property(nonatomic, strong)nsstring *isopenshake;

寫完之後。屬性建立就完畢,當外部進行呼叫的時候,無非就是set方法和get方法,因為我在.m內寫了create_setget_utils_m(nsmutabledictionary *,locatedictinary , locatedictinary);這個方法,呼叫的時候就會走它,@synthesize ,告訴編譯器我如果沒有手動生成set和get方法就讓他自己幫我生成。然後我手寫set方法和get方法,我只是傳入了屬性的大寫字母,在set和get方法內部呼叫了nsuserdefault的儲存和取值,這樣就完成了整個的使用。

.m的巨集方法內部2個##的使用是c的拼接作用。1個#是將後面的引數字串化

整個使用方法:

1.建立屬性:

2.在.m內呼叫方法生成setget方法:

3.設定頁通過開關儲存鍵值對:

4.使用處直接取值即可:

以上是關於本地訪問的一些優化,使用的時候在commonmodel的方法裡面 每次需要新加的時候呼叫一次建立屬性的create_setget_utils_h方法,然後.m實現一次create_setget_utils_m 外面就可以使用了,這樣做好處不用多說,至少看起來規範了,而且多人的時候管理起來也方便一些;

Ios本地儲存(筆記)

乙個應用程式包含以下三個檔案 nsbundle 包 nsbundle資料夾 用來儲存建立工程時候,或者是開發時候所新增的檔案和 也就是工程中左面所有多東西 在 執行的過程中,裡面的所有東西是全都不能修改。documents資料夾 儲存的是在整個應用程式生命週期內一直存在的內容 5g以內 libray...

iOS中本地儲存

用於儲存建立工程時 開發過程中 所新增的檔案或 等所有內容 開發過程中可以修改資料夾的內容 在執行過程中不可以修改 2 documents 在整個應用程式的生命週期內 將程式的資料存到蘋果官方的資料中 一般儲存資料庫 3 library 存放快取 4tmp 臨時性儲存 向本地儲存資料的過程 系統自帶...

IOS中的本地儲存

資料本地儲存的本質其實就是把資料儲存成檔案,儲存到程式的沙盒中.ios中的沙盒機制是一種安全機制 沙盒的本質 其實也是資料夾 通常沙盒中包含四個資料夾bundle,document,library,tmp 1.bundle bundle裡面存放的是 資源檔案 和配置檔案.注 內容在程式執行期間為唯讀...