Realm資料庫拾遺

2021-09-11 12:26:43 字數 970 閱讀 2068

支援資料庫加密

// 產生隨機金鑰

nsmutabledata *key = [nsmutabledata datawithlength:64];

secrandomcopybytes(ksecrandomdefault, key.length, (uint8_t *)key.mutablebytes);

// 開啟加密檔案

rlmrealmconfiguration *config = [rlmrealmconfiguration defaultconfiguration];

config.encryptionkey = key;

nserror *error = nil;

rlmrealm *realm = [rlmrealm realmwithconfiguration:config error:&error];

if (!realm)

複製**

realm 支援在建立 realm 資料庫時採用64位的金鑰對資料庫檔案進行 aes-256+sha2 加密。這樣硬碟上的資料都能都採用aes-256來進行加密和解密,並用 sha-2 hmac 來進行驗證。每次您要獲取乙個 realm 例項時,您都需要提供一次相同的金鑰。 缺點:加密過的 realm 只會帶來很少的額外資源占用(通常最多隻會比平常慢10%)。

通知

// 獲取 realm 通知

token = [realm addnotificationblock:^(nsstring *notification, rlmrealm * realm) ];

[token stop];

// 移除通知

[realm removenotification:self.token];

複製**

realm 例項將會在每次寫入事務提交後,給其他執行緒上的 realm 例項傳送通知。一般控制器如果想一直持有這個通知,就需要申請乙個屬性,strong持有這個通知。

Realm資料庫拾遺

支援資料庫加密 產生隨機金鑰 nsmutabledata key nsmutabledata datawithlength 64 secrandomcopybytes ksecrandomdefault,key.length,uint8 t key.mutablebytes 開啟加密檔案 rlmre...

c 拾遺 處理資料

1 變數命名規則 按照倒數第二點方式進行命名不會導致編譯器錯誤,但會導致不確定性。而最後一點某些平台有長度限制 2 cout十進位制輸出其他進製 cout預設通過十進位制顯示,cout include int main 3 const與 define 使用const是定義乙個常值變數,一般格式為co...

Core Data 資料遷移拾遺

首先感謝掘金 貓d 的推薦,很多朋友關注了我,由於剛開始寫技術文章,並沒有寫出什麼真正的乾貨,深感愧疚。今天討論的是 core data 資料遷移中的一些細節問題,參閱了不少資料,進行了反覆的驗證,可以說填上了不少坑。本文討論的範圍僅限於自動觸發的自定義遷移情況,其他情況後續再補充。在遷移測試前,先...