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...