小事: 自动生成Getter代码
来源:互联网 发布:庞博 程序员 编辑:程序博客网 时间:2024/06/05 18:48
之前有看到过一个Xcode插件, 可以根据选中的属性名自动生成对应Getter代码, 当时我还在想: 这东西挺有用的, 但自己一直都是xib/storyboard开发, 不太用得上.
谁知道, 没过多久我就被告知以后的项目只能使用纯代码编程了, 这就很尴尬了, 更尴尬的是那个插件链接当时没存, 现在怎么找都找不到了.
后来辗转了解到那个插件是基于Xcode Source Editor Extensions开发的, 看了看相关资料发现不太麻烦, 就花了两个小时自己写了一个. 实现效果如图:
如何使用
使用方式很简单, 打开插件工程, Command+R然后选择Xcode开始运行. 如图:
插件运行成功后, Dock栏会有一个黑色的Xcode图标, 点击黑色Xcode选择自己的项目工程打开, 然后选中想要生成Getter代码的属性列表, 最后点击Xcode工具栏的Editor->HHGetterGenerator->Source Editor Command即可(如果Editor栏没有插件名, 那可能是插件运行失败了, 重新运行即可). 如图:
当然, 如果你觉得鼠标点击的方式比较麻烦的话, 你也可以通过Xcode偏好设置->Key Bindings设置一下插件的快捷键. 如图:
最后, 因为插件我是用免费证书运行的, 所以如果插件工程停止运行, 那么东西就不灵了. 各位可以自己把代码拉下来以后替换成公司的开发证书, 然后插件就可以实实在在的装到Xcode上了, 具体过程请参考:Xcode 8 插件——Source Editor Extensions
如何拓展
个人比较懒散, 只实现了一些自己用的上的代码块, 如果你有其他需求或者文中代码规范不合你意, 可以自己到SourceEditorCommand.m中添加/修改源码, 里面我已经定义好了一些简单的宏方便后续的拓展.
如果你需要新的类Getter方法, 假设类名是XXX, 那么自己添加一个XXXGetter进行实现, 然后呢在generateGetterDescription加上ReturnGetter(XXX)即可.
SourceEditorCommand.m里面的现有实现是这些:
static inline NSArray *generateGetterDescription(NSString *className, NSString *propertyName) {#define ReturnGetter(clsName) if ([className isEqualToString:[NSString stringWithUTF8String:#clsName]]) return clsName##Getter(propertyName); ReturnGetter(UIView) ReturnGetter(UILabel) ReturnGetter(UIButton) ReturnGetter(UITextView) ReturnGetter(UITextField) ReturnGetter(UIImageView) ReturnGetter(UITableView) ReturnGetter(UICollectionView) return nil;}static inline NSArray *UIViewGetter(NSString *propertyName)static inline NSArray *UILabelGetter(NSString *propertyName)static inline NSArray *UIButtonGetter(NSString *propertyName)...其他UI
note: 如果你想要自己改源码, 需要注意一点: Xcode Source Editor不太稳定, 多次运行容易崩溃. 不过插件工程的崩溃不会影响到我们的项目的工程, 所以不用担心, 你需要的, 只是耐心的再次运行.
本文附带的demo地址
作者:黑花白花
链接:http://www.jianshu.com/p/ae97892739e0
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
- 小事: 自动生成Getter代码
- eclipse-自动生成getter和setter方法
- JDT Eclipse Getter Setter自动生成注释
- eclipse 自动生成getter setter的问题
- Myeclipse 下自动生成getter和setter方法
- Eclipse自动生成Getter、Setter和构造方法
- MyEclipse自动生成Getter、Setter和构造方法
- symfony 中 doctrine 的 Entity 自动生成 getter setter
- 一款vs2005自动生成getter/setter插件:VSPropertyGenerator2
- 玩转Eclipse — 自动生成setter和getter方法
- object c @synthesize 自动生成setter,getter方法
- Eclipse自动生成Getter、Setter和构造方法
- Eclipse自动生成Getter,Setter和构造方法
- 玩转Eclipse — 自动生成setter和getter方法
- IDEA中自动生成getter/setter的方式
- Xcode插件,自动生成Getter,带你飞
- 代码自动生成.
- 自动生成代码
- csu1115 最短的名字 字典树模板
- 2017.9.2总结3-分割田地
- css基础(4)
- POJ 3087
- Android 中怎样查找SELinux导致的权限受限有关问题
- 小事: 自动生成Getter代码
- UVA 11624
- docker 使用Dockerfile 创建带jdk 和tomcat的镜像
- 2439四叶草魔杖
- UILabel简单高效实现圆角的方式
- ES Java API
- 替换空格
- 「VIM」关闭vim的BELL声音
- UVA 784