目录:

一、格式化代码

二、命名

命名要求

1. 类的命名:

规则:

大驼峰命名法,每个单词的首字母都采用大写字母。一般添加业务前缀。后缀一般是当前类的种类。

ViewController:后缀:ViewController

NavigationController:后缀:ViewController

TabBarController:后缀:TabBarController

View:        后缀:View

Model:      后缀:

Cell:          后缀:Cell

Delegate:  后缀:Delegate

......

方法:

前缀+业务名称(或继承关系名称)+类别名称

示例:

XSDBaseNavigationController

XSDHomePageViewController

AccountCouponCell

2. 私有变量:

规则:

小驼峰命名法,第一个单词以小写字母开始,后面的单词的首字母全部大写。

方法:

在 .m 文件中声明私有变量,以 ”_“ 开头。

示例:

3. @property 变量:

规则:

小驼峰命名法。

方法:

@property (nonatomic, copy) NSString *dateCreated;//消息创建时间

示例:

4. 宏命名:

规则:

1>全部大写,以 ”_“连接[不带参数];

2>以字母 ”k“ ,后面遵循大驼峰命名[不带参数];

3>小驼峰命名[可带参数]。

方法:

示例:

#define MWPHOTO_PROGRESS_NOTIFICATION @"MWPHOTO_PROGRESS_NOTIFICATION"

#define kScreenHeight [UIScreen mainScreen].bounds.size.height      //获取设备的物理高度

#define getImageUrl(url) [NSURL URLWithString:[NSString stringWithFormat:@"%@%@",kBaseUrl,url]]

5. 枚举定义:

规则:

Enum类型的命名与类的命名规则一致。

Enum中枚举内容的命名需要以该Enum类型名称开头。

方法:

示例:

6. Delegate:

规则:

类的实例必须为回调方法的参数之一。

回调方法的参数只有类自己的情况,方法名要符合实际含义

以类的名字开头(回调方法存在两个以上参数的情况)以表明此方法是属于哪个类的。

使用did和will通知Delegate已经发生的变化或将要发生的变化。

方法:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

- (NSInteger)numberOfSectionsInTableView:(UITableView*)tableView

- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

- (NSIndexPath*)tableView:(UITableView*)tableView willSelectRowAtIndexPath:(NSIndexPath*)indexPath;

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

示例:

7.

规则:

大驼峰命名法,一般添加业务前缀。

方法:

示例:

三、注释

注释要求

1. 属性变量注释:

规则:

在定义的属性变量后添加注释。

方法:

使用”//“ + 说明

示例:

@property (nonatomic, copy) NSString * overdueSum;      //已逾期总额

2. 方法注释:

规则:

在方法声明的 .h 文件中,添加方法作用、各个参数及返回结果的说明

方法:

在声明时添加如下图的注释。

在实现文件 .m 中添加 #pragma mark - 功能

示例:

.h 文件中如下:

在 .m 文件中:

#pragma mark - 获取账户中心优惠券

3. 类的注释:

规则:

在类的头文件中添加注释,声明当前类的描述。

方法:

在 .h 文件中添加 Class 描述+功能

示例:

四、Cocoa 和 Objective-C特有的规则

五、Cocoa Pattern

六、其他

项目管理之 Objective-C 编码规范的更多相关文章

  1. JavaEE程序编码规范

    JavaEE程序编码规范 目   录 JAVA程序编码规范1 1变量的命名规则1 1.1常量(包含静态的)1 1.2类变量(静态变量)及实例变量1 1.3局部变量1 1.4参数2 1.5其它2 2方法 ...

  2. 初级c++编码规范

        想了很久,第一篇文章还是应该写编码规范好一点.编码规范是一个仁者见仁的问题,为了避免复杂庞大,自己总结了一套简单版本的规范. 简介     本文介绍一份自己使用的C++编码规范.第一次正式进入 ...

  3. Android的编码规范

    一.Android编码规范 1.学会使用string.xml文件 在我看来,当一个文本信息出现的次数大于一次的时候就必须要使用string.xml 比如一个保存按钮 , 不规范写法: <Butt ...

  4. PHP 高级编程(1/5) - 编码规范及文档编写

    PHP 高级程序设计学习笔记20140612 软件开发中的一个重要环节就是文档编写.他可以帮助未来的程序维护人员和使用者理解你在开发时的思路.也便于日后重新查看代码时不至于无从下手.文档还有一个重要的 ...

  5. 【原】JAVA SE编码规范

    /* * 编码规范: * 1.所有的命名遵循"见名知意"的原则 * 2.所有的命名不允许使用汉字或拼音 * 3.Java的工程命名建议使用小写,比如:oa.crm.cms... * ...

  6. 浅谈Android编码规范及命名规范

    前言: 目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑. 现大框架已经完成,正在进行细节模块上的开发 抽空总结一下Android项目的开发规范:1.编码规范 ...

  7. PHP编码规范PSR-2

    .note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...

  8. Objective-C开发编码规范【转载】

    概要 Objective-C是一门面向对象的动态编程语言,主要用于编写iOS和Mac应用程序.关于Objective-C的编码规范,苹果和谷歌都已经有很好的总结: Apple Coding Guide ...

  9. 前端编码规范之CSS

    "字是门面书是屋",我们不会去手写代码,但是敲出来的代码要好看.有条理,这还必须得有一点约束~ 团队开发中,每个人的编码风格都不尽相同,有时候可能存在很大的差异,为了便于压缩组件对 ...

  10. 前端编码规范之JavaScript

    上次浅谈了下关于CSS的编码规范,大部分童鞋持赞同意见,仍存在一些童鞋不太理解这些规范的意义. 如果是个人或者小作坊开发,其实这些所谓的编码规范也没啥意思,因为大家写好的代码直接就给扔到网上去了,很少 ...

随机推荐

  1. 实现一个竖直的显示表头的表格(vue版本)

    今天遇到一个问题,实现这样一个竖直的显示表头的表格,如下图.默认显示两列. vue实现代码如下:   tableComponent.vue:   <template> <table ...

  2. setTimeout 和 setInteval 的区别。

    学习前端的可能都知道js有2个定时器setTimeOut和setinteval.用的时候可能不是很在意,但是2者还是有区别的 setTimeout方法是定时程序,也就是在什么时间以后干什么.干完就完了 ...

  3. 配置WampServer以及搭建WordPress的一些问题,持续总结。

    这里用的版本是Wampserver2.4-x64. Wamp的安装就不赘述了,一路点通过就可以了. #注意:(最好别改,省的麻烦) 80端口是Apache 的默认端口,在httpd.conf文件中配置 ...

  4. Vim常用操作-快速删除括号中内容。

    如果你和我一样,希望拥有众多工具,发挥工具最大执行效率,让工作事半功倍的话,我推荐你来使用下 Vim. 刚接触Vim 会觉得它的学习曲线非常陡峭,要记住很多命令,操作太复杂.所以这个系列的分享,不会教 ...

  5. DirectFB 之 分段动画

    动画动态配置 一套素材的目录结构一般如下: 子目录中的图片名称都是以数字命名,比如,1,2, 3, 4,--        而配置文件animation.cfg的格式如下: #width height ...

  6. RedHat 7.1 下安装 Zabbix监控程序详解(适合linux初级用户)

    RedHat 7.1 安装 Zabbix 监控程序详解(适合对linux初级用户)2017-05-02 安装步骤: 1.zabbix需要安装LAMP架构 2.安装zabbix服务 3.初始化zabbi ...

  7. Transform java future into completable future 【将 future 转成 completable future】

    Future is introduced in JDK 1.5 by Doug Lea to represent "the result of an asynchronous computa ...

  8. Xmind 体验分享

    Xmind 8 体验 初识思维脑图 这两天在学习使用思维脑图(xmind是其中一款软件)ing,在体验了一把思维脑图的使用后,深深感受到了脑洞大开的魔力. 从昨晚开始研究使用,到今天晚上截止,自己试着 ...

  9. MySQL 完整和增量备份与恢复

    MySQL 完全备份与恢复 1.数据备份的重要性 在企业中数据的价值至关重要,数据保障了企业的业务的运行,因此数据的安全性及可靠性是运维的重中之重,任何数据的丢失都有可能会对企业产生严重的后果.造成数 ...

  10. 记录——时间轮定时器(lua 实现)

    很长一段时间里,我错误的认识了定时器.无意中,我发现了“时间轮”这个名词,让我对定时器有了新的看法. 我错误的认为,定时器只需要一个 tick 队列,按指定的时间周期遍历队列,检查 tick 倒计时满 ...