iOS规范文档OC版

原创 2018年04月14日 17:09:17

iOS规范文档OC版

目录结构规范

静态库

目录名为:Frameworks,存放所有的静态库文件

项目目录

项目目录下设置以下几个目录:

Macro:宏定义文件夹,只放值一些自定义或第三方秘钥,其他的宏定义需放置在pch文件里

NetWorks:网络请求文件夹,放置不同网络请求的文件

Categories:分类文件

Utils:工具类文件

Models:数据模型文件

Views:视图文件

Controllers:控制器文件

Managers:管理类文件

DataBase:数据库文件(CoreDataFMDB

Vendors:第三方SDK

Resources:资源文件

项目目录下的子文件根据功能进行分割,不同功能模块的代码需要分别使用文件夹分开,存放在子文件下或单独创建一个主文件夹。
按大功能模块Controller至少创建一个父类 View看需求

命名规范

通用规范

通用规范是在整个项目中,所有的命名都需要遵循的规范

清晰

所有的命名要清晰且简洁,以清晰为主。要做到见名知意。命名最好以英文为主,除专有名词外,不许使用单词缩写。严禁使用中文或拼音以及拼音与英文混合的方式

创建首页文件件====

正例:HomeViewController

反例:shouyeViewControlle

一致性

做某件事的代码通常都叫这个名字,比如tag、setStringValue,那你也这么叫。在你不确定怎么起名的时候请参照《Apple开发规范》

驼峰原则

分为大驼峰小驼峰,每个类型需要遵循大驼峰或小驼峰中的一种
大驼峰:首字母大写。
小驼峰:首字母小写

大驼峰:HomeViewController

小驼峰:userName

文件夹命名规范

文件夹名需要遵循大驼峰原则,且功能集合的文件夹必须使用复数形式。文件命名需要与模块的功能相对应。

类命名规范

类名需要遵循大驼峰原则。类名最好加上项目的前缀缩写,如WP+类名。当需要在其他项目使用的类,可以不加或添加规定的统一前缀。

封装通用的库,需要确认统一的前缀(WP)!

类别名规范

类别的命名主要是扩展名的命名规则,类别的扩展名必须要遵循 类名 + 标识 + 扩展功能的命名规范。

UIImage (WPAdd)

方法命名规范

方法名的命名需要遵循小驼峰原则。规范的方法名应该看起来像一个完整的句子。尽量做到读方法名便可以知道函数的作用。

/**
 发送获取地址列表请求
 */
- (void)beginSendRequestForGetAddressList

代理命名规范

代理的命名需要遵从大驼峰原则。且开始必须要遵循当前代理对象 + Delegate的命名规范。例如:LoginViewDelegate

变量命名规范

变量名需要遵循小驼峰原则。除了公认的名称外,必须使用单词的全称命名。当需要使用多个参数时,按照顺序拼接。禁止使用缩写进行拼接。普通变量无需添加下划线开头,全局变量、成员变量需要以下划线开头。

常量命名规范

常量名规范分为3种:
1、普通常量:需要遵循小驼峰原则。例如:kUserToken
1、宏定义:需要全大写,例如USER_TOKEN
2、枚举:需要遵循前缀 + 大驼峰的命名方式。例如:WPUserLoginType

图片命名

1、模块+功能命名法(公共使用:common+功能)例如:个人中心模块中我的消息按钮:personal_btn_my_message

2、单词全拼,或者大家公认无歧义的缩写(如:nav,bg,btn等)

注释规范

所有使用//进行注释的代码,//后面必须要加上空格,即// 注释

成员变量注释规范

.h文件中,所有的属性使用 /** 注释 */的注释方法,例如:

/** 用户Id */
@property (nonatomic, copy) NSString *userId;

当需要对属性进行详细说明时可以对/** 注释 */进行换行,来分行注释

/**
 登录凭证
 每次登录时创建或者退出时删除
 */
@property (nonatomic, copy) NSString *sessionToken;

.m中的,所有属性在结尾处使用// 注释进行注释,且//与结尾处至少空一格。注释内容最好可以就近对齐,对齐可以使用Tab直接缩进对齐或使用空格键对齐,例如:

@property (nonatomic, strong) ODSTopUpCountView *topUpCountView; // 充值金额视图

@property (nonatomic, strong) ODSTopUpPaymentView *payTypeView;  // 支付方式视图

@property (nonatomic, strong) ODSTopUpBottomView *bottomView;    // 支付说明视图

非成员变量,在结尾处使用// 注释进行注释,例如:

@interface ODSTopUpViewController ()
{
    UILabel *_nameLabel; // 用户名文本
}

@end

方法注释规范

方法注释统一使用系统注释方法CMD + Opt + ?,当方法的参数名不重要时则可以删除。重要的参数名必须要要进行注释。
除系统方法外,自定义的方法必须要注释!
复杂的逻辑处理最好也要加上必要的注释说明,说明主要的处理逻辑

方法与方法间,如果后面一个方法有注释,则换一行,没有注释则需要换两行

代码组织

.m文件中必须使用#pragma mark -进行方法分组。Controller中最好使用一下的方法进行分组:

#pragma mark - - - - - - - - - - - - - - - - - Init And Dealloc - - - - - - - - - - - - - - - - -
#pragma mark - - - - - - - - - - - - - - - - - Life Cycle - - - - - - - - - - - - - - - - -
#pragma mark - - - - - - - - - - - - - - - - - Data Request - - - - - - - - - - - - - - - - -
#pragma mark - - - - - - - - - - - - - - - - - Event Response - - - - - - - - - - - - - - - - -
#pragma mark - - - - - - - - - - - - - - - - - Delegate Response - - - - - - - - - - - - - - - - -
#pragma mark - - - - - - - - - - - - - - - - - NSNotification Response - - - - - - - - - - - - - - - - 
#pragma mark - - - - - - - - - - - - - - - - - Public Events - - - - - - - - - - - - - - - - -
#pragma mark - - - - - - - - - - - - - - - - - Private Events - - - - - - - - - - - - - - - - -
#pragma mark - - - - - - - - - - - - - - - - - Setter and Getter - - - - - - - - - - - - - - - - -

代码规范

删除多余的空格

属性变量

使用@property时,括号中的nonatomicassignstrong等,中间用,隔开时,逗号后面必须空一格。后面的类名()必须空一格。

@property (nonatomic, copy) NSString *userId;

方法规范

有处理逻辑的方法左侧的{需要换行。没有处理逻辑时,则使用{},且方法前的-、+必须与后面的()空一格具。体如下所示:

- (void)loginButtonClick
{
    // 执行逻辑
}

- (void)loginButtonClick
{}

控制语句

1、switch块内通过break/return来终止
在一个switch块内,每个case要么通过break/return来终止,要么注释说明程序将继续执行到哪一个case为止;在一个switch块内,都必须包含一个default语句并且放在最后,即使它什么代码也没有。

2、在if/for/while/switch语句中使用大括号
条件语句体应该总是被大括号包围。尽管有时候你可以不使用大括号(比如,条件语句体只有一行内容),但是这样做会带来问题隐患。比如,增加一行代码时,你可能会误以为它是 if 语句体里面的。此外,更危险的是,如果把 if 后面的那行代码注释掉,之后的一行代码会成为 if 语句里的代码。

3、推荐尽量少用else,例如:

if (isLogin) {

    //处理逻辑
    return;
}

// else的逻辑

4、if/for/while/switch语句中,if/for/while/switch与后面的()必须要空一格,()与左侧{必须空一格。且if/for/while/switch语句中左侧的{不换行。

5、if的条件判断中尽量不要使用函数方法作为判断,应新建一个BOOL类型的值接收,例如

正例: 
    BOOL success = [self checkSaveIsSuccess];
    if (success) {
        
        // 处理逻辑
        
    } else {
    
    }
    
反例:
    if ([self checkSaveIsSuccess]) {
        
        // 处理逻辑
        
    } else {
    
    }

操作符

除了一元操作符外,所有操作符两侧的元素必须要与操作符空一格。

封装

当项目或.m文件中,同一段代码出现三次以上的时候,则需要对这段代码进行封装。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/XuanTong520/article/details/79942041

iOS开发规范文档

介绍关于这个编程语言的所有规范,如果这里没有写到,那就在苹果的文档里: Objective-C 编程语言 Cocoa 基本原理指南 Cocoa 编码指南 iOS 应用编程指南 目录 点语法 间距 条...
  • du_90
  • du_90
  • 2016-05-20 10:47:00
  • 1352

iOS编码规范精简版-根据apple、google等规范总结而来

目录1.格式和换行 2.命名 3.oc下的cocoa编码规范 4.注释要求 5.其他 6.参考文档 附:ARC下编码注意事项 序此文档根据apple、google以及其他一些业界知名的o...
  • openglnewbee
  • openglnewbee
  • 2016-04-06 15:27:46
  • 2860

OC代码风格规范

一些基本的代码风格就不多说了,说下不怎么在意的代码规范问题。 【1】 局部变量不应该包含下划线命名。 【2】变量命名应该如 NSString *text 而不是 NSString* text 或者 N...
  • WiKi_Su
  • WiKi_Su
  • 2016-01-28 15:20:47
  • 691

OC基础----查看苹果帮助文档

Application Programming Interface   API  应用程序编程接口                 苹果每次升级或者更新iOS系统,都会添加或更新大量的API...
  • cherry_711
  • cherry_711
  • 2016-03-01 09:31:44
  • 1520

<iOS开发>之规范文档

一.语言采用US(美式)英语,不使UK(英式)英语或汉字拼音.US: UIColor *myColor =[UIColor blueColor]; UK: UIColor *myColour =[UI...
  • cherish_joy
  • cherish_joy
  • 2017-06-27 13:21:47
  • 426

iOS与JS交互Demo文档(ObjC版)

http://mp.weixin.qq.com/s?__biz=MzIzMzA4NjA5Mw==&mid=214063688&idx=1&sn=903258ec2d3ae431b4d9ee55cb59...
  • lvchaman
  • lvchaman
  • 2017-02-20 18:32:26
  • 762

iOS生产版本发布规范

iOS生产版本发布规范版本记录 日期 编辑者 校审 版本 2015-07-27 袁伟 v0.1 版本更新概要 版本 更新概要 v0.1 iOS生产版本发布...
  • u014466582
  • u014466582
  • 2015-07-31 17:38:19
  • 994

Xcode文档注释使用总结

Xcode作为iOS的开发神器,为我们提供了十分丰富的文档提示功能,在开发过程中,我们可以十分方便的按下Option键,选中一个类或者方法查看其文档说明。而实际开发过程中我们也可以使用规范的方法添加注...
  • DreamcoffeeZS
  • DreamcoffeeZS
  • 2016-08-15 21:31:50
  • 1832

iOS开发-查看各种格式文档-DocInteraction

  • 2015年08月10日 17:33
  • 435KB
  • 下载
收藏助手
不良信息举报
您举报文章:iOS规范文档OC版
举报原因:
原因补充:

(最多只允许输入30个字)