默认有25个CM文件,可直接使用;如果你想生成特色的代码仍然需要编写自己的CM文件。
CM文件(.cm)大规则:
- 所有浮点型归为
Float
类型,非浮点型归为Int
; 即基本数据类型只有Float
、Int
、Bool
. - 一个CM文件只能有一个声明.
- CM文件第一行必须为声明.
- 注释格式
单行注释
// 单行注释
多行注释
// 多行注释1
// 多行注释2
// 多行注释3
一、Objective-C CM文件(.cm)编写规则
CM文件路径:/Users/xxxxxx/CodeMixer/BaseClass/OC
自己编写的CM文件需要放到此路径中
1、结构体(Struct)
声明语法
#struct#
名称##
框架或引用文件
注册创建实例方法(或静态属性)语法
##m2#
方法名(#0, #1, #2, #3, ...)##
第1个参数类型,第2个参数类型,第3个参数类型,第4个参数类型,...
方法参数是从0开始标记,如果没有参数不需要标记
示例
#struct#CGRect##UIKit
##m2#CGRectMake(#0, #1, #2, #3)##Float,Float,Float,Float
##m2#CGRectZero
2、枚举(Enum)
声明语法
#enum#
名称##
框架或引用文件
注册成员语法
##e#
成员名称
示例
#enum#NSTextAlignment##UIKit
##e#NSTextAlignmentLeft
##e#NSTextAlignmentCenter
##e#NSTextAlignmentRight
##e#NSTextAlignmentJustified
##e#NSTextAlignmentNatural
3、类(Class)
声明语法
#class#
类名##
框架或引用文件
注册构造方法语法
##m1#
方法名:#0 参数2:#1 参数3:#2, ...##
第1个参数类型, 第2个参数类型, 第3个参数类型, ...
方法参数是从0开始标记,如果没有参数不需要标记
注册创建实例的静态方法语法
##m2#
方法名:#0 参数2:#1 参数3:#2, ...##
第1个参数类型, 第2个参数类型, 第3个参数类型, ...
方法参数是从0开始标记,如果没有参数不需要标记
注册属性语法
##p#
属性名##
类型
示例
#class#UIView##UIKit
##m1#initWithFrame:#0##CGRect
##p#frame##CGRect
##p#bounds##CGRect
##p#center##CGPoint
##p#contentScaleFactor##Float-10.0
##p#multipleTouchEnabled##Bool
##p#exclusiveTouch##Bool
##p#autoresizesSubviews##Bool
##p#autoresizingMask##UIViewAutoresizing
##p#clipsToBounds##Bool
##p#opaque##Bool
##p#clearsContextBeforeDrawing##Bool
##p#hidden##Bool
##p#backgroundColor##UIColor
##p#alpha##Float-1.0
##p#contentMode##UIViewContentMode
Float-1.0
表示动态生成的值在 [0.0, 1.0] 范围内,Float-10.0
表示动态生成的值在 [0.0, 10.0] 范围内,Float
表示动态生成的值在 [0.0, 600.0] 范围内,同样适用于Int
下载一些OC示例
二、Swift CM文件(.cm)编写规则
CM文件路径:/Users/xxxxxx/CodeMixer/BaseClass/Swift
自己编写的CM文件需要放到此路径中
1、结构体(Struct)
声明语法
#struct#
名称##
框架
注册创建实例方法(或静态属性)语法
##m2#
方法名(#0, #1, #2, #3, ...)##
第1个参数类型,第2个参数类型,第3个参数类型,第4个参数类型,...
方法参数是从0开始标记,如果没有参数不需要标记
示例
#struct#CGRect##UIKit
##m2#CGRect(x: #0, y: #1, width: #2, height: #3)##Float,Float,Float,Float
##m2#CGRect(x: #0, y: #1, width: #2, height: #3)##Int,Int,Int,Int
##m2#CGRect.zero
2、枚举(Enum)
声明语法
#enum#
名称##
框架
注册成员语法
##e#
成员名称
示例
#enum#NSTextAlignment##UIKit
##e#left
##e#center
##e#right
##e#justified
##e#natural
3、类(Class)
声明语法
#class#
类名##
框架
注册构造方法语法
##m1#
(参数1:#0, 参数2:#1, 参数3:#2, ...)##
第1个参数类型, 第2个参数类型, 第3个参数类型, ...
方法参数是从0开始标记,如果没有参数不需要标记
注册创建实例的静态方法语法
##m2#
方法名(参数1:#0, 参数2:#1, 参数3:#2, ...)##
第1个参数类型, 第2个参数类型, 第3个参数类型, ...
方法参数是从0开始标记,如果没有参数不需要标记
注册属性语法
##p#
属性名##
类型
示例
#class#UIView##UIKit
##m1#(frame: #0)##CGRect
##p#frame##CGRect
##p#bounds##CGRect
##p#center##CGPoint
##p#contentScaleFactor##Float-10.0
##p#isMultipleTouchEnabled##Bool
##p#isExclusiveTouch##Bool
##p#autoresizesSubviews##Bool
##p#autoresizingMask##UIView.AutoresizingMask
##p#clipsToBounds##Bool
##p#isOpaque##Bool
##p#clearsContextBeforeDrawing##Bool
##p#isHidden##Bool
##p#backgroundColor##UIColor
##p#alpha##Float-1.0
##p#contentMode##UIView.ContentMode
Float-1.0
表示动态生成的值在 [0.0, 1.0] 范围内,Float-10.0
表示动态生成的值在 [0.0, 10.0] 范围内,Float
表示动态生成的值在 [0.0, 600.0] 范围内,同样适用于Int
下载一些Swift示例
三、测试CM文件(.cm)编写正确性
1、编写好的CM文件放到指定路径
OC:/Users/xxxxxx/CodeMixer/BaseClass/OC
Swift: /Users/xxxxxx/CodeMixer/BaseClass/Swift
2、 打开 CodeMixer 进入CM文件测试功能( CodeMixer 3 Beta3+
)