iOS开发者代码规范
1. 代码注释格式
(1)文件注释:采用Xcode自动生成的注释格式。
//
// AppDelegate.h
// 项目名称
//
// Created by ling on 2018/12/8.
// Copyright © 2018年 开发者名称. All rights reserved.
//
(2)import注释:如果有一个以上的import语句,对这些语句进行分组,每个分组的注释是可选的。
// Framework
#import<UIKit/UIKit.h>
// Model
#import"LBModel.h"
// View
#importLBView.h"
(3)方法注释:Xcode8之后快捷键自动生成(option + command + /)。
/**
<#Description#>
@param application <#application description#>
@param launchOptions <#launchOptions description#>
@return <#return value description#>
*/
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
(4)代码块注释:单行的用 “// + 空格” 开头, 多行用“/* */”。
2. 代码结构与排版
(1)声明文件:方法顺序和实现文件的顺序保持一致,根据需要用”#pragma mark -“将方法分组。
(2)实现文件:必须用”#pragma mark -“将方法分组。分组前后优先级:Lifecycle方法 > Public方法 > UI方法 > Data方法 > Event方法 > Private方法(逻辑处理等) > Delegate方法 > 部分Override方法 > Setter方法 > Getter方法。
#pragma mark - Lifecycle
- (instancetype)init {}
- (void)viewDidLoad {}
- (void)viewWillAppear:(BOOL)animated {}
- (void)viewDidAppear:(BOOL)animated {}
- (void)viewWillDisappear:(BOOL)animated {}
- (void)viewDidDisappear:(BOOL)animated {}
- (void)didReceiveMemoryWarning {}
- (void)dealloc {}
#pragma mark - Public
- (void)refreshData {}
#pragma mark - UI
- (void)initSubViews {}
#pragma mark - Data
- (void)initData {}
- (void)constructData {}
#pragma mark - Event
- (void)clickButton:(UIButton *)button {}
#pragma mark - Private
- (CGFloat)calculateHeight {}
#pragma mark - UIScrollViewDelegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {}
#pragma mark - Override
- (BOOL)needNavigationBar {}
#pragma mark - Setter
- (void)setWindow:(UIWindow *)window {}
#pragma mark - Getter
- (UIWindow *)window {}
(3)变量:优先使用属性声明而非变量声明,注意属性修饰符、变量类型、变量之间的间隔
@property (nonatomic, strong) UIView *lbView;
(4)点语法:应始终使用点语法来访问和修改属性。
(5)间距要求如下:
一个缩进使用四个空格。
在”-“或者”+“号之后应该有一个空格,方法的大括号和其它大括号始终和声明在同一行开始,在新的一行结束,另外方法之间应该空一行。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if (door.isClosed) {
// Do something
} else {
// Do something
}
return YES;
}
(6)长度要求如下:
每行代码的长度不应该超过100个字符。
单个函数或方法的实现代码控制在50行以内。
单个文件里的代码行数控制在500~600行之内。