| empty_parameters |
no |
yes |
yes |
使用 () -> 代替 `Void -> |
| empty_parentheses_with_trailing_closure |
no |
yes |
yes |
尾闭包避免空参数括号 |
| colon |
no |
yes |
yes |
冒号左边没有空格, 右边有空格 |
| comma |
no |
yes |
yes |
逗号左边没有空格, 右边有空格 |
| leading_whitespace |
no |
yes |
yes |
文件末尾不应该存在空格符 |
| legacy_cggeometry_functions |
no |
yes |
yes |
避免使用 C 风格 的 CG 遗留函数, 使用 struct extension |
| legacy_constant |
no |
yes |
yes |
避免使用 遗留的全局常量, 使用 struct 内定义的 常量 |
| legacy_constructor |
no |
yes |
yes |
使用 swift 提供的 struct 构造函数, 避免使用 遗留的构造函数 比如 CGPointMake(10, 10) |
| legacy_nsgeometry_functions |
no |
yes |
yes |
避免使用 C 风格 的 NS 遗留函数, 使用 struct extension |
| mark |
no |
yes |
yes |
正确使用 mark 的格式 // MARK: - message
|
| opening_brace |
no |
yes |
yes |
需要正确书写大括号格式 |
| redundant_discardable_let |
no |
yes |
yes |
使用 _ = foo() 代替 let _ = foo()
|
| redundant_optional_initialization |
no |
yes |
yes |
不需要写默认值为 nil |
| closing_brace |
no |
yes |
yes |
小括号内包含函数(大括号)的时候,之间没有空格 |
| redundant_void_return |
no |
yes |
yes |
在不必要的时候, 不需要写 ->() and -> Void |
| return_arrow_whitespace |
no |
yes |
yes |
函数定义返回的 -> 前后有空格, 不换行 |
| statement_position |
no |
yes |
yes |
else and catch 应该与 } 在同一行, 以空格间隔 |
| trailing_newline |
no |
yes |
yes |
文件末尾应该有一个空行 |
| trailing_semicolon |
no |
yes |
yes |
行末尾不加分号 |
| trailing_whitespace |
no |
yes |
yes |
行末尾不加空格 |
| unused_closure_parameter |
no |
yes |
yes |
函数的参数必须被使用 |
| vertical_whitespace |
no |
yes |
yes |
不能有连续多个空行 |
| void_return |
no |
yes |
yes |
使用 -> Void 代替 `-> () |
| class_delegate_protocol |
no |
no |
yes |
delegate protocol 应该被设定为 class-only |
| closure_parameter_position |
no |
no |
yes |
闭包的参数应该和 { 在同一行 |
| compiler_protocol_init |
no |
no |
yes |
不应该直接调用字面量转换的初始化方法 |
| control_statement |
no |
no |
yes |
if while 等判断条件不要用括号 括起来 |
| custom_rules |
no |
no |
yes |
一些自定义规则 |
| cyclomatic_complexity |
no |
no |
yes |
不应该存在太复杂的函数(判断语句过多) |
| discarded_notification_center_observer |
no |
no |
yes |
当使用 block 注册通知中心 observer 的时候, 应该存储函数返回的 observer, 以便之后的删除 |
| file_length |
no |
no |
yes |
文件长度限制 |
| for_where |
no |
no |
yes |
使用 for where 代替 简单的 for { if }
|
| force_cast |
no |
no |
yes |
避免强制的类型转化 |
| force_try |
no |
no |
yes |
避免 try!
|
| function_body_length |
no |
no |
yes |
body 长度限制 |
| function_parameter_count |
no |
no |
yes |
函数参数数目限制 |
| generic_type_name |
no |
no |
yes |
类型命名规则限制 |
| identifier_name |
no |
no |
yes |
参数变量命名规则 |
| implicit_getter |
no |
no |
yes |
read-only 参数不应该有 getter |
| large_tuple |
no |
no |
yes |
tuple 不应该包括太多参数 |
| line_length |
no |
no |
yes |
行长度限制 |
| nesting |
no |
no |
yes |
类型定义嵌套不要超过1层 , 声明嵌套不要超过5层 |
| notification_center_detachment |
no |
no |
yes |
NotificationCenter.default.removeObserver 只在 deinit 中被调用 |
| operator_whitespace |
no |
no |
yes |
定义操作符的时候 操作符左右应该各有一个空格 |
| private_unit_test |
no |
no |
yes |
单元测试方法 不能设置为 private |
| redundant_string_enum_value |
no |
no |
yes |
字符串类型枚举, 会有默认 string 值,与名字相同, 不要再次设置 |
| shorthand_operator |
no |
no |
yes |
使用 +=, -=, *=, /= |
| syntactic_sugar |
no |
no |
yes |
要使用 [] ? 等数组字典可选项的语法糖 |
| todo |
no |
no |
yes |
避免 TODOs and FIXMEs 标识 |
| trailing_comma |
no |
no |
yes |
数组末尾不要加括号 |
| type_body_length |
no |
no |
yes |
类型体行数限制 |
| type_name |
no |
no |
yes |
类型名字限制规则 |
| unused_enumerated |
no |
no |
yes |
当参数没有被全部使用的时候, 不要使用容器的 enumerated 方法 |
| unused_optional_binding |
no |
no |
yes |
必须使用定义的 optional binding |
| valid_ibinspectable |
no |
no |
yes |
IBInspectable 必须是可变参数 |
| vertical_parameter_alignment |
no |
no |
yes |
函数参数分为多行书写的时候, 头部(小括号后面一位)必须对其 |
| weak_delegate |
no |
no |
yes |
delegate 应该被设置为 weak |