iOS编码规范

# 前言 #

        

Objective-C开发中,所有的编码规范都以苹果官方代码为标准,如果编码过程的遇到的问题在本文档中没有涉及到,请参考苹果官方代码的格式。


苹果推崇的编码规范核心思想是:可读性高。不随便使用缩写,分段式长函数名都是基于此思想。在实际编码过程中,随时以此思想为准则。



# 一:命名


## 1:清晰,无歧义


如:


```

insertObject: atIndex:(好)


insert:at:(不清晰)

```


方法名称必须明确表达出该方法的用途,驼峰名中第一段须表示出该方法的主要动作 或者宿主对象,例如可采用这种方式:btnPressed,使用第一段 btn 用于表示这是一个 按钮方法。


## 2:不要随便缩写名称,即使很长也要拼写完整。


```

setBackgroundColor:  (好)


setBkgColor : (不清晰)

```


可以使用的常见缩写


```

alt    Alternate.

app  Application. 

calc  Calculate.

func Function.

horiz Horizontal.

info Information.

max Maximum.

min Minimum.

msg Message.

rect Rectangle.

temp Temporary.

vert Vertical.

btn Button

dest Destination

```


## 4:前缀


在实际编码中, 命名 class, protocol, structuretypedef等时,要使用前缀。

命名方法时,不使用前缀。因为方法处于所在类的命名空间中。


例:QTXBaseViewController 而此类的中的方法不需要再加前缀


## 5:书写规范 使用camel命名法


正常情况下,方法名小写第一个单词的首字符,大写后续所有单词的首字符。

如: fileExistsAtPath:isDirectory: 


##6:类扩展(Category):


头文件的命名形式为:原类名+“Additions”


如:UIImageView+AFNetworking.h


##7:子类命名规范


后缀必须是父类的类型:


例如 UItableView的子类,命名为 ***TableView 以便于识别类型。


如果 NSObject类型的,需要指明本类的作用(如,managermodel等)


##8:代理命名


参考官方的命名方式:第一部分是类本身,第二部分表明目的或事件。


- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;


用于通知委托对象操作即将发生或已经发生的方法名中要使用 did will


- (void) browserDidScroll:(NSBrowser *)sender;


用于询问委托对象可否执行某操作的方法名中使用 should 


- (BOOL) windowShouldClose:(id)sender;



# 二:格式



1. 不同的方法间要空1行。


2. 条件,循环,选择语句,整个语句结束,需要空1行。


3. 大的类别不同要空2行。


4. 星号(*)要靠近变量,不靠近类型。


    UIColor     *textColor;  


5. 注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)



# 三:其他细节


1. 对类中的不同方法进行分组,用 #pragma mark 来区分。


2. 比较时把常量放前面可以避免错误,不要用if(aIntValue==255){},而用if(255==aIntValue){},避免漏掉一个,而变成赋值。


3. 所有返回BOOL类型的值必须为 YESNO 不能返回 10或其他。 


4. 函数体即使只有一行代码也要加大括号。


5. 常用的宏要放到 ***-Prefix.pch 文件中。


6. 备忘、标记、TODO使用这样的格式: // TODO: 内容




# 四:代码工程结构


工程结构的规范原则是模块化,快速定位文档和资源。特制定以下规则。


第一级,分为以下两个大组


**系统文件(Applications)**


**资源文件(Resources**


**代码文件(Classes**



1:系统文件中 Applications


```     

一些几个系统文件.


main.m

xxx-Info.plist

xxx-Prefix.pch

xxxAppDelegate.h

xxxAppDelegate.m



```

2:资源文件中  Resources


```     

—ImagesIcons, Defaults, Others(此文件夹中放置所需要图片,并分组))

         

—Localizations(语言包)

         

—Databases(可选)

 

—Audios


```


3:代码文件中   Classes 

        

```

(各模块文件夹,放置某模块专属的viewmodelcontroller等)


— ThirdParty(放置第三方库,必要时需要再进行分类放置)

  

— PublicUI(放置自身的公共UI, QTXLoadingView)

— PublicLib(放置自身的公共功能库, QTXURLManager)

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值