與Core Data相關的還有比較有名的MagicalRecord。使用CoreData時會用到許多引用代碼,讓工作變得很複雜,MagicalRecord可以幫你解決這些問題。MagicalRecord的目標是清除CoreData引用的代碼,允許在需要請求優化的時候修改NSFetchRequest。
MagicalRecord的靈感來自於Ruby on Rails(wikipedia:Ruby on Rails簡稱Rails,是一個使用Ruby語言寫的開源Web應用框架,它是嚴格按照MVC結構開發的。它努力使自身保持簡單,來使實際的應用開發時的代碼更少,使用最少的配置。)
安裝:
“更新記錄”、“刪除記錄”
安裝:
- 新建一個項目,注意在嚮導中不要勾選Core Data。
- 利用CocoaPods下載MagicalRecord,其中Podfile文件內容如圖1:
- 爲項目添加CoreData FrameWork。(點擊工程根節點,然後依次Targets > Build Phases > Link Binary With Libraries > + > CoreData.framework > Add)。
- 添加Magical Record的頭文件到*-Prefix.pch:#import <MagicalRecord/MagicalRecord.h>
創建模型文件:
下面創建一個名爲Person的模型,有age、firstname、lastname三個字段。
1、創建一個名爲Model的模型文件。 (File > New File… > Core Data > Data Model)
2、點擊左下角的Add Entity,更改Entity的名字爲Person。
3、爲Entity添加三個Attribute:age(Integer16)、firstname(string)、lastname(string)。
4、點擊Editor > Create NSManagedObject Subclass… > Create創建模型文件對應的類。
使用MagicalRecord:
在AppDelagate.m中初始化MagicalRecord,如圖2在ViewController.m中,引入Person類的頭文件,封裝四個方法分別是:“創建記錄”、“查詢記錄”、“更新記錄”、“刪除記錄”。
“創建記錄”、“查詢記錄”、
“更新記錄”、“刪除記錄”
小技巧
啓動時MR_mergedObjectModelFromMainBundle方法報錯
Core Data的模型有版本的概念,有可能在你Magical Record第一次初始化完成以後,你又更改了模型文件,導致Core Data去合併模型報錯。解決辦法很簡單,點擊菜單中的Project->Clean即可。
項目使用ARC後,編譯Magical Record不通過
點擊項目 -> Build Phases -> Compile Sources中, 雙擊報錯的class文件, 編輯Compiler Flags加入 -fno-objc-arc。
不想使用MR_前綴
只需要在*-Prefix.pch文件中添加一句#define MR_SHORTHAND即可,注意這句要在#import “CoreData+MagicalRecord.h”之前。