MMKV MMKV使用教程

2021-10-13 06:39:51 字數 3797 閱讀 8131

2. mmkv**github

mmkv實際使用的**案例以下:

[mmkv setloglevel:mmkvlognone];//關閉mmkv控制台列印的自帶的輔助日誌資訊

[self kvcreatemethod];//建立mmkv的方法

[self comparemmkvwithnsuesrdefault];//比較mmkv和nsuserdefaults儲存資料的效率

[self clanguagedatatype];//儲存和讀取c語言資料型別

[self oclanguagedatatype];//儲存和讀取oc語言資料型別

[self kvmigratefromuserdefaults];//從nsuserdefaults遷移資料到mmkv

// [[mmkv defaultmmkv] clearall];

//totalsize:檔案分配的總磁碟空間4k;actualsize:儲存檔案佔據的實際儲存空間298byte

nslog(@"count:%zu-----totalsize:%zu------actualsize:%zu-----allkeys:%@",[[mmkv defaultmmkv] count],

[[mmkv defaultmmkv] totalsize],[[mmkv defaultmmkv] actualsize],[[mmkv defaultmmkv] allkeys]);

//列印結果:count:7-----totalsize:4096------actualsize:298-----allkeys:(double,uint64,uint32,int32,bool,int64,float)

return yes;

}複製**

建立mmkv的方法:ide

//如下四種建立方法是徹底等價的,建立的是同乙個mmkv例項

- (void)kvcreatemethod

//mmkv檔案儲存的預設為~/documents/mmkv

nsstring *basepath = [mmkv mmkvbasepath];

//修改檔案儲存的預設路徑,在建立mmkv例項以前設定

[mmkv setmmkvbasepath:@""];

//第一種建立方法

mmkv *defaultkv1 = [mmkv defaultmmkv];

//第二種建立方法

mmkv *defaultkv3 = [mmkv mmkvwithid:@"mmkv.default"];

//第三種建立方法

nsstring *string = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) lastobject];

mmkv *defaultkv4 = [mmkv mmkvwithid:@"mmkv.default" relativepath:string];

//第四種建立方法

mmkv *defaultkv2 = [mmkv mmkvwithid:@"mmkv.default" cryptkey:nil relativepath:string];

}複製**

比較mmkv和nsuserdefaults儲存資料的效率:

ui寫入10萬個資料所用的時間

mmkv : 198.487043ms

nsuserdefaults : 13829.244971ms

- (void)comparemmkvwithnsuesrdefault

cfabsolutetime starttime =cfabsolutetimegetcurrent();

mmkv *customkv = [mmkv mmkvwithid:@"cn.meicai"];

for (int i=0; i<100000; i++) 複製**

儲存和讀取oc語言資料型別:

spa支援如下 objc 型別:

nsstring、nsdata、nsdate

- (void)oclanguagedatatype

//cryptkey 根據此秘鑰建立aes加密器,加密後的資料訪問方法不變,和未加密的同樣

mmkv *mmkv = [mmkv mmkvwithid:@"cn.meicai" cryptkey:[@"crypt" datausingencoding:nsutf8stringencoding]];

[mmkv setstring:@"hello, mmkv" forkey:@"string"];

nslog(@"string:%@ defaultvalue:%@", [mmkv getstringforkey:@"string"],[mmkv getstringforkey:@"string111" defaultvalue:@"mmmmmmmmmmmmmmmm"]);

//列印結果:string:hello, mmkv defaultvalue:mmmmmmmmmmmmmmmm

[mmkv setobject:nil forkey:@"string"];

nslog(@"string after set nil:%@, containskey:%d",

[mmkv getobjectofclass:nsstring.class

forkey:@"string"],

[mmkv containskey:@"string"]);

//列印結果:string after set nil:(null), containskey:0

[mmkv setdate:[nsdate date] forkey:@"date"];

nslog(@"date:%@ defaultvalue:%@", [mmkv getdateforkey:@"date"],[mmkv getdateforkey:@"date111" defaultvalue:[nsdate date]]);

//列印結果:date:wed jun 26 14:39:52 2019 defaultvalue:wed jun 26 14:39:52 2019

[mmkv setdata:[@"hello, mmkv again and again" datausingencoding:nsutf8stringencoding] forkey:@"data"];

nsdata *data = [mmkv getdataforkey:@"data"];

nslog(@"data:%@", [[nsstring alloc] initwithdata:data encoding:nsutf8stringencoding]);

//列印結果:data:hello, mmkv again and again

}複製**

從nsuserdefaults遷移資料到mmkv:

從nsuserdefault遷移資料到mmkv的例項

- (void)kvmigratefromuserdefaults

[[nsuserdefaults standarduserdefaults] setobject:@"hello world" forkey:@"string"];

[[nsuserdefaults standarduserdefaults] synchronize];

mmkv *userdefaultkv = [mmkv mmkvwithid:@"nsuserdefault"];

[userdefaultkv migratefromuserdefaults:[nsuserdefaults standarduserdefaults]];

[userdefaultkv enumeratekeys:^(nsstring * _nonnull key, bool * _nonnull stop) 複製**

SVN使用使用教程

本人在公司孤兒式開發,是用不到svn這種工具的,但是怕突然某一天電腦壞掉,消失所以還是使用上 管理工具。簡單概括一下svn它是 幹什麼的 一群人寫 每乙個人寫的部分都不一樣,但是專案是乙個整體,每個人的 需要合到一起才是乙個完整的專案,但是每乙個人寫的 又不可能出現在其他人的電腦上,所以使用svn專...

Git使用教程

提起git,大家無疑會想到github,沒錯,我就是通過眾多的github專案鏈結了解到的git,不知你是否也在走這條路呢?如果是的話,本文有一些有用的總結性文字以及一些 git教程 可以教會你如何去使用 git.當然,這些對 github 同樣適用.這裡我又翻到了個幻燈片,可以供大家 寫給大家的 ...

mii tool使用教程

mii tool 這是專門設定網絡卡工作模式的命令 1.檢視網絡卡的工作模式,輸入命令 mii tool v eth0 negotiated 100basetx fd,link ok product info vendor 00 05 be,model 8 rev 0 basic status au...