iOS 代码规范总结

简介: 前言:代码规范最终的目的是降低代码维护的成本。代码规范的好处(网上一搜一大把):http://kdboy.iteye.com/blog/407572一.

前言:代码规范最终的目的是降低代码维护的成本。

代码规范的好处(网上一搜一大把):http://kdboy.iteye.com/blog/407572

一. 结构规范

1.文件夹的建立:注意创建的都是实体文件夹 参考链接http://blog.csdn.net/lvxiangan/article/details/21228215

2. MVC 三个文件夹 : Controller  View  Model

 通常View 下面会有Cell 文件夹  Model 下会有Biz (业务处理类: 请求接口 组织数据)和 Entity(实体类)

img_9c68c1af342d8547d8ea7fb1a8ef033d.png
MVC 目录结构

3.继承关系

    Controller 继承一个自定义的UIViewContrller  eg:EMSuperVC

    View        继承一个自定义的UIView eg:EMSuperView

   自定义cell 继承UITableViewCell

4.类中源文件中的方法布局

    1. 构造函数 (init)

   2.  父类方法

   3.   公共方法public method

   4.    代理方法  delegate

   5.响应事件response events

   6.    私有方法privatelymethod

   7.    get set 方法

他们之间需要用#pragma mark - XXX 分开  使布局清晰

每个类型中的多个方法通过#pragma mark ------ zs20170716XXX 注释方便查找方法

5.MVC 之间的通信

   Controller - > View   调用View 提供的public method   千万不要为了省事将VIew 的私有属性公开   后期维护成本太大  耦合性太大

    View - >Controller  block  回调

    Controller -> Model  调用Model 提供的public method

    Model - > Controller   delegate 传值

6.类的导入:在源文件中导入类,头文件中用@class  声明类

7.每个函数方法的限制

     7.1 每个方法只做一件事

      7.2 行数要进行限制

8.方法的花括号另起一行,结构块花括号尾随语句之后

img_b48a6c857042ff93ff992a7407a3d782.png
示例图

二.命名规则 总体必须遵从驼峰法则

1.类的命名

所有的类名均以EM开头  (公司名简称)

Controller : EM + 类描述 + VC

VIew         :    EM + 类描述 + VIew

Model 中 Entity  :    EM + 类描述 + 后台返回数据生成的字段

Model 中  Biz     :    EM + 类描述 + Biz

img_3c6dfa0a00e2326258eb7ee3c4ef2414.png
类的命名示例

2.属性的命名 (变量的命名)

    @property(nonatomic,strong) EMWalletView *viewWallet;

    2.1小括号前后有空格

    2.2 *与类名之间有空格 和属性命名之间无空格

    2.3 UI类的命名:

           2.3.1 UILable *labTitle;

          2.3.2 UIView  *viewBack;

         2.3.3 UIButton *btnPay;

         2.3.4 UITextField  *tFLogin;

         2.3.5 EMWalletView *viewWallet;

2.4 Controller 中的属性命名举例

       @property(nonatomic,strong) EMTransactionRecordView *viewTransactionRecord;主View

       @property(nonatomic,strong) EMTransactionRecordBiz *bizTransactionRecord; 

2.5 View中Block 的定义和命名

block定义:类名 + Block 进行命名

eg:

img_d9a1c715d2bd54d6853aba6cefd8d424.png

属性命名:block + 去掉EM的类名

eg:

img_45465882a147c436c3e55fb6d9323ecc.png

3.刷新方法的命名

- (void)reloadTableViewWithDataSource:(EMTradeRecordBaseClass*)entityTradeRecord;

- (void)reloadCellMessageWithDataSource:(EMTradeRecordList*)entityTradeRecord;

4.Biz中代理(delegate)协议的命名

协议的命名: 类名+Delegate eg:EMTransactionRecordBizDelegate

设置遵从协议的代理属性:

@property(nonatomic,weak,nullable)id<EMTransactionRecordBizDelegate>delegate;

协议方法的命名:

biz + 去掉EM和Biz的类名 + response(or other) + 返回的信息的描述

img_2517cc697faf51ceac3f0db29c377449.png

三.注释

1.所有的注释都需要写上  注释者和时间

2.Controller 头文件中 需要写上注释:说明这个类是做什么的,需要注意什么, 可以粘贴需求。

eg:

img_c6ca8faac936db933b89e224fb8efaea.png

属性的注释规范/**<<#注释的内容#> */

@property(nonatomic,strong) EMTransactionRecordBiz *bizTransactionRecord;

eg:

img_d91848a5abaa32a02f48c0c34e4e117f.png

4.public method 的注释   Common + alt + /

注释者+时间 + 这个方法是作什么的 + 参数的定义 + 返回的参数的定义

eg:

img_b365b84257d4a2a8ed3c3f0f96968fe7.png

5.私有方法的注释

一般是#pragma mark ------ zs20170716XXX 方便内部的查找

如果需要可以参考4加上详细的参数注释

注意顺序:#pragma mark ——— zs20170716XXX 在上 详细注释在下

6.方法内部的注释

注释尽量写在这一行的后面 而不是这个行的上面 如果注释字数多可酌情处理 尽量用单行注释

eg:需要写上 注释者+时间

img_99b7ebdce74032e4168a761062657410.png

7.Model中的Entity的注释

服务器端返回的数据 往往需要我们生成对应的实体类

实体类的有些字段往往是允余的或者是现在没有用到的,这些字段也需要注释方便以后开发(此处优先级自行安排);

eg:

img_9d4a31e9114cd625b09f8628321efea0.png
目录
相关文章
|
存储 缓存 算法
iOS 常见触发离屏渲染场景及优化方案总结
iOS 常见触发离屏渲染场景及优化方案总结
899 0
iOS 常见触发离屏渲染场景及优化方案总结
|
自然语言处理 iOS开发 C++
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
本文总结提炼了Alibaba.com App的瘦身的技术和策略,系统化地介绍APP瘦身的业务价值、分析技术、瘦身技术、防劣化机制,让读者可以系统化地了解APP瘦身的技术体系。并基于实践经验,介绍各种瘦身技术的ROI,让读者可以避免踩雷,将资源浪费在效果不佳的技术上。希望对你有所帮助。
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
|
JSON 自然语言处理 编译器
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
前言包大小是衡量APP性能的一项重要指标,它直接影响用户的下载点击率(包太大不想下)、下载安装成功率(下载慢不用了)、APP卸载率(太占空间先删掉)。包大小的计算逻辑很简单,它是各种类型的文件占用磁盘大小相加。APP瘦身的技术却很复杂,代码文件的复杂度和编译器策略决定了可执行文件的大小,业务功能和工程架构决定了代码文件的复杂度。iOS APP瘦身,需要掌握的技能有XCode构建技术、LLVM编译器
3824 0
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
|
物联网 Android开发 iOS开发
iOS开发 - 蓝牙学习的总结
iOS开发 - 蓝牙学习的总结
188 0
|
安全 iOS开发 开发者
iOS 6版本与之前版本差异总结
iOS 6版本与之前版本差异总结
130 0
|
程序员 API iOS开发
iOS开发:个人对于textView基础用法的总结(其一)
从事了这么久ios开发,对于textView的使用并不陌生,它和textfield有相似的地方,也有不同的地方,这里只对textView的一些基础用法进行描述,textfield不在这里描述。
340 0
|
设计模式 缓存 编解码
2020年iOS大厂面试题总结
2020年iOS大厂面试题总结
460 0
|
Unix Linux C#
iOS开发:Crash异常总结与捕获
说到异常捕获,就必须要提到Crash问题,iOS中,Crash一般分为两种: 1、一种是由EXC_BAD_ACCESS引起的,原因是访问了不属于本进程的内存地址,有可能是访问已被释放的内存; 2、一种是未被捕获的目标C异常(NSException)记录,导致程序向自身发送了SIGABRT信号而崩溃。
904 0
iOS开发:Crash异常总结与捕获
|
iOS开发 容器
iOS 代码规范格式 Objective-C(上)
iOS 代码规范格式 Objective-C
440 0
iOS 代码规范格式 Objective-C(上)
|
缓存 前端开发 网络协议
12个iOS技术面试题及答案总结
随着移动互联网科技不断的发展和创新,如今无论是公司还是开发者或设计师个人而言,面试都是一项耗时耗钱的项目,而面对iOS开发者及设计师在面试时可能会遇到的问题进行了筛选与汇总。下面我们一起来一下看看吧。
12个iOS技术面试题及答案总结