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

3.前缀。

在实际编码中,命名 class,protocol, structuretypedef等时,要使用前缀。命名方法时,不使用前缀。因为方法处于所在类的命名空间中。

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

4.书写规范,使用camel命名法。

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

5.类扩展(Category)。

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

如:UIImageView+AFNetworking.h

6.子类命名规范。

后缀必须是父类的类型:

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

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

7.代理命名。

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

  • (CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath;
  • (void)tableView:(UITableView )tableView didSelectRowAtIndexPath:(NSIndexPath )indexPath;

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

  • (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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值