亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

關(guān)于CoreData的一個(gè)工具M(jìn)ogenerator的使用

系統(tǒng) 1854 0

最近看到用CoreData時(shí)使用的工具M(jìn)ogenerator,發(fā)現(xiàn)網(wǎng)上介紹其具體使用的不多,特此簡(jiǎn)單整理一下,
關(guān)于CoreData這里就不具體說(shuō)了,使用就用 MagicalRecord ,用起來(lái)真是太方便了。

關(guān)于Mogenerator

? ? ? ?MagicalRecord是一個(gè)命令行工具,通過(guò)項(xiàng)目里的.xcdatamodel文件(.xcdatamodeld里面右鍵點(diǎn)擊顯示包內(nèi)容),可以為每個(gè)entity生成 ? ?兩個(gè)類,第一個(gè)是machine文件_MyEntity,會(huì)同步你的data model,第二個(gè)是human文件MyEntity,它就是你在代碼中#import操作類。你不需要修改machine和human里面的任何文件,用的時(shí)候只需要在代碼里#import導(dǎo)入human里的.h文件。

安裝Mogenerator

? ? 方法一:直接從官網(wǎng) http://rentzsch.github.com/mogenerator /下載dmg文件安裝
? ? 方法二:用 Homebrew 安裝,直接在終端執(zhí)行brew命令:brew install mogenerator


使用Mogenerator

這里新創(chuàng)建一個(gè)MogDemo工程來(lái)具體說(shuō)明
? 1、 創(chuàng)建一個(gè)data model文件MogModel.xcdatamodeld,并創(chuàng)建一個(gè) 實(shí)體Person,(如圖)這里要注意Person的Entity里的Class項(xiàng)是否是空的, 保持Class項(xiàng)與上面的Name項(xiàng)一致 就行了。




? ?
2、點(diǎn)擊工程的TARGETS 一> Build Phases,點(diǎn)擊右下角的Add Bulid Pahase,添加腳本Add Run Script (如圖)





3、 然后在Run Script添加script代碼,注意替換相應(yīng)的data model:(如圖) <更新 mogenerator 腳本,支持 data model遷移,獲取當(dāng)前版本 >

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
MODELS_DIR= "${PROJECT_DIR}/$PROJECT_NAME"
DATA_MODEL_PACKAGE= "$MODELS_DIR/CoreDataDemoModel.xcdatamodeld"
# - 替換相應(yīng)的 xxxxx.xcdatamodeld名稱
?
CURRENT_VERSION=`/usr/libexec/PlistBuddy "$DATA_MODEL_PACKAGE/.xccurrentversion" -c 'print _XCCurrentVersionName' `
?
if [ -x /usr/ local /bin/mogenerator ]; then
echo "mogenerator exists in /usr/local/bin path" ;
MOGENERATOR_DIR= "/usr/local/bin" ;
elif [ -x /usr/bin/mogenerator ]; then
echo "mogenerator exists in /usr/bin path" ;
MOGENERATOR_DIR= "/usr/bin" ;
else
echo "mogenerator not found" ; exit 1;
fi
$MOGENERATOR_DIR/mogenerator -m "$DATA_MODEL_PACKAGE/$CURRENT_VERSION" -M "$MODELS_DIR/CoreData/Machine/" -H "$MODELS_DIR/CoreData/Human/"
?
# 如果是ARC工程,加上 --template-var arc=true就行了,即mogenerator命令換成:
# $MOGENERATOR_DIR/mogenerator --template-var arc=true -m "$DATA_MODEL_PACKAGE/$CURRENT_VERSION" -M "$MODELS_DIR/CoreData/Machine/" -H "$MODELS_DIR/CoreData/Human/"







?4、現(xiàn)在可以Build工程,build成功不出意外的話就會(huì)在Finder中看到工程文件目錄下生成了CoreData文件夾, CoreData下的Human是Person.h/Person.m,Machine里是 _Person.h/_Person.m (如圖)





?5、在Xcode中將生成的CoreData添加到工程里,右鍵Add Files "MogDemo" (如圖)






最后在代碼中#import "Person.h"就可以使用了,如果在.xcdatamodeld為Entity添加屬性,添加之后直接Bulid下,就可以在代碼里直接使用了。例如給Person添加一個(gè)屬性phone:(如圖)



補(bǔ)充一條,如果項(xiàng)目使用了ARC,mogenerator 命令需要加上 --template-var arc=true

這里有mogenerator的詳細(xì)命令介紹
http://stackoverflow.com/questions/3589247/how-do-the-mogenerator-parameters-work-which-can-i-send-via-xcode ?

http://www.cocoachina.com/bbs/read.php?tid=143640

還有,對(duì)于NSNumber類型屬性,可以直接像下面一樣使用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
???? Person *person = [Person createEntity];
???? person.name = @ "WWDC2012" ;
???? //person.age = [NSNumber numberWithShort:16];
???? ?
???? //現(xiàn)在像NSNumber屬性賦值(取值)就可以直接這樣:
???? person.ageValue = 12;
???? ?
???? [[ NSManagedObjectContext defaultContext] saveToPersistentStoreAndWait];
???? ?
???? NSArray *arr = [Person findAll];
???? for (Person *newPerson in arr) {
???????? ?
???????? NSLog (@ "age=:%d" ,newPerson.ageValue);
???? }
?

關(guān)于CoreData的一個(gè)工具M(jìn)ogenerator的使用


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 欧美一级大片在线观看 | 中国性xxxxx极品奶水 | 日本人成免费大片 | 男人都懂www深夜免费网站 | 日日添天天做天天爱 | 黄色片在线免费观看视频 | 中文字幕免费在线播放 | 富二代啪啪精品网站 | 成人精品视频一区二区三区 | 在线亚洲欧美性天天影院 | 香蕉久热 | 四虎永久网址在线观看 | 精品三级国产一区二区三区四区 | a一级毛片免费高清在线 | 国产精品成人h片在线 | 久久国产精品一区二区三区 | 国产综合亚洲专区在线 | 婷婷中文 | 国产性精品 | 伊人网综合在线观看 | 97高清国语自产拍 | 国产精品欧美亚洲韩国日本不卡 | 亚洲综合色视频 | 欧美一区二区三区不卡片 | 午夜久久久久久久 | 91久久精品一区二区三区 | 99在线精品免费视频 | 老司机伊人 | 国产这里只有精品 | 免费一级特黄视频 | snh48欧洲大片在线观看 | 日日日日人人人夜夜夜2017 | 亚洲国产精品久久久久666 | 国产亚洲第一 | 天天干天天操天天射 | 欧美在线一级视频 | 亚洲曰本大成网站mmm | 亚洲一区中文字幕在线 | 99婷婷久久精品国产一区二区 | 午夜在线观看cao | 久久久久国产精品免费网站 |