Ream--(objc)寫事務精簡方案
地址: REALM--
Realm官方提供的的寫事務有兩種方式:
A
[realm beginWriteTransaction]; // ... [realm commitWriteTransaction]; B [realm transactionWithBlock:^{ //... }];
由于realm強制執行緒安全,所以realm物件不適合持有,所以造成了realm寫事務面向realm編程,而不是面向RLMObject編程,或者說realm的面向過的程痕跡還沒消除干凈,追求速度的realm由c++實作,realm選擇了速度放棄了一些便利,
這種編碼方式才是我們期望的
[object commitTransaction:^(object){ object.key = value; }];
常見的封裝策略都是圍繞AB兩種形式,圍繞A形式封裝的問題是代碼損耗大,作用域不直觀,并且中間不能return,B形式封裝的問題是夸閉包傳值代碼損耗大,除錯原作用域浪費時間,不能return,
最理想的編碼方式是一行
{ @realm_writing; /// Begin commit object.key = value; } /// Commit when leava current scope.
這種寫法最佳方案是借助C++的解構式,膽使用C++會要求所有.m檔案修改為.mm,最終選擇的是使用attribute來實作,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/5594.html
標籤:iOS
下一篇:iOS編程實戰 — 新的UI范式
