iOS笔记 (15)
Mogenerator的初级使用
什么是Mogenerator
最近在用Core Data来进行开发。Core Data其实封装的很好了。把存储底层都屏蔽了(sqlite,xml,内存)。不管是用那种方式存储下来。用Core Data都是在操作对象了。但是Core Data一套东西下来,单是学习就学习的泪流满面。天资有限,只能找一些看上去更简单的第三方类库来使用。
github上找了很久,最后在使用的是MagicalRecord。不为其他,只是用起来很爽。特别是目前升级到了2.1版本以后,保存的方法名字不那么逆天了。更是好用多了。
而Mogenerator是什么东西呢。
它漂亮的主页上是这样写的:
mogenerator为你定义了的Core Data生成默认的数据类。与xCode不一样的是(xCode一个Entity只生成一个NSManagedObject的子类),mogenerator会为每一个Entity生成两个类。一个为机器准备,一个为人类准备。为机器准备的类一直去匹配data model。为人类准备的类就给你轻松愉快的去修改和保存。
为什么需要Mogenerator
安装Mogenerator
Mogenerator其实是一个命令行的工具,因此也就可以轻松愉快的用homebrew去安装。
1 | $ brew install mogenerator |
升级
1 | $ brew update && brew upgrade mogenerator |
在项目里面添加Mogenerator
按照这篇的教程我添加了脚本以后运行不成功
1 | cd testMogenerator |
提示:
/Volumes/Data/iYu/Library/Developer/Xcode/DerivedData/testMogenerator-adwdmrbsvjjxqtawmqvnhfdhubts/Build/Intermediates/testMogenerator.build/Debug-iphonesimulator/Mogenerator.build/Script-5B80B84A16D9EC8F00E8E3A3.sh: line 3: mogenerator: command not found Command /bin/sh failed with exit code 127
自己打命令测试Mogenerator是成功的
xCode使用的是/bin/sh,我怀疑是用homebrew安装的以后的Path跟xCode的/bin/sh/执行的
思考以后在命令之前之前导入mogenerator的路径。 由于我是用homebrew按照的自然在homebrew的路径下面
1 | cd testMogenerator |
这次mogenerator是找到了,但是xcadatamodeld又没有找到。看到
mogenerator: error loading file at myDataBase.xcdatamodeld/myDataBase.xcdatamodel/: no such file exists Command /bin/sh failed with exit code 66
pwd出来路径观察以后把cd去掉
1 | export PATH="/usr/local/Cellar/mogenerator/1.27/bin:$PATH" |
这次就对了
使用Mogenerator
我创建了一个叫testMogenerator的工程并且在工程的data model名字叫myDataBase 如图:
mogenerator安装以后是这样的
然后安command+B 运行一下这个target。
运行以后生成的文件在这里
PS: 第一次生成的文件位置不对。所以脚本又改了一下
1 | cd testMogenerator |
每一个Entity生成了两个类 一个Entity的名字的类, 一个下划线Entity的名字的类。_XXXX.*这个类不要去修改,修改XXXX这个类就好了。
如果是一个新的entity,需要你自己加入自己的工程里面工程,如果Entity已经加入现在只是更新了Entity的话。就不用加入工程了。
最后编译的时候还是不对 脚本继续改 囧
1 | cd testMogenerator |
总结
断断续续折腾了两天。大概明白了mogenerator怎么一个事情。但是好用好还有带研究。这篇blog先发吧。不然又难产了。