iOS开发代码规范(通用)

 例子: MFHomeViewController

View: 使用View做后缀

例子: MFAlertView

UITableCell:使用Cell做后缀

例子: MFNewsCell

Protocol: 使用Delegate或者DataSource作为后缀

例子: UITableViewDelegate

UI控件依次类推

 3> 私有变量

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

  例子:firstName、lastName

  • 以 _ 开头,第一个单词首字母小写

  例子:NSString * _somePrivateVariable

  • 私有变量放在 .m 文件中声明 

 4> property变量

  • 小驼峰式命名

   例子:///注释

      @property (nonatomic, copy) NSString *userName;

  • 禁止使用synthesize关键词

 5> 宏命名

  • 全部大写,单词间用 _ 分隔。[不带参数]

  例子: #define THIS_IS_AN_MACRO @"THIS_IS_AN_MACRO"

  • 以字母 k 开头,后面遵循大驼峰命名。[不带参数]

  例子:#define kWidth self.frame.size.width

  • 小驼峰命名。[带参数]

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

 6> Enum

  • Enum类型的命名与类的命名规则一致
  • Enum中枚举内容的命名需要以该Enum类型名称开头

  例子:

1 typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {

2     AFNetworkReachabilityStatusUnknown = -1,

3     AFNetworkReachabilityStatusNotReachable = 0,

4     AFNetworkReachabilityStatusReachableViaWWAN = 1,

5     AFNetworkReachabilityStatusReachableViaWiFi = 2

6     };

 7> Delegate命名

  • 类的实例必须为回调方法的参数之一, 如

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

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

  -(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView

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

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

  • 使用did和will通知Delegate已经发生的变化或将要发生的变化, 如:

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

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

2. 私有方法及变量声明

 1> 声明位置

  在.m文件中最上方,定义空的category进行声明

   例子:

1        #import "CodeStandardViewController.h"

2     // 在这个category(类目)中定义变量和方法

3     @interface CodeStandardViewController ()

4     {

5

6       // 声明私有变量

7     }

8

9      // 私有方法

10     - (void)samplePrivateMethod;

11     @end

12

13     @implementation CodeStandardViewController

14     // 私有方法的实现

15     - (void)samplePrivateMethod

16     {

17       //some code

18     }

3. 关于注释

 最好的代码是不需要注释的 尽量通过合理的命名

 良好的代码把含义表达清楚 在必要的地方添加注释

 注释需要与代码同步更新

 如果做不到命名尽量的见名知意的话,就可以适当的添加一些注释或者mark

 1> 属性注释

  例子:

    /// 学生

    @property (nonatomic, strong) Student *student;

 2> 方法声明注释:

1     /**

2    * @brief 登录验证

3    *

4    * @param personId 用户名

5    * @param password 密码

6    * @param complete 执行完毕的block

7    *

8    * @return

9    */

10   + (void)loginWithPersonId:(NSString *)personId password:(NSString *)password complete:(void (^)(CheckLogon *result))complete;

4. 关于UI布局

 使用Interface Builder进行界面布局

 Xib文件的命名与其对应的.h文件保持相同

 Xib文件中控件的组织结构要合理,Xib文件中控件需要有合理的可读性强的命名,方便他人理解

5. 格式化代码

 1> 指针 "*" 位置

  定义一个对象时,指针 "*" 靠近变量

   例子: NSString *userName;

 2> 方法的声明和定义

  在 - 、+ 和 返回值 之间留一个空格,方法名和第一个参数之间不留空格

- (id)initWithNibName:(NSString *)nibNameOrNilbundle:(NSBundle *)nibBundleOrNil

{...}

 3> 代码缩进

  • 使用 xcode 默认缩进,即 tab = 4空格
  • 使用 xcode 中 re-indent 功能定期对代码格式进行整理
  • 相同类型变量声明需要独行声明

  例子:

CGFloatoringX = frame.origin.x;

CGFloatoringY = frame.origin.y;

CGFloatlineWidth = frame.size.width;

  • Method与Method之间空一行

  例子:

1 #pragma mark - private methods

2

3 - (void)samplePrivateMethod

4 {...}

5

6 - (void)sampleForIf

7 {...}

 4> 对method进行分组

  使用 #pragma mark - 方式对类的方法进行分组

   例子:

1      #pragma mark - private methods

2

3   - (void)samplePrivateMethod

4   {...}

5

6   - (void)sampleForIf

7   {...}

8

9   - (void)sampleForWhile

10   {...}

11   

12   - (void)sampleForSwitch

13   {...}

14

15   - (void)wrongExamples

16   {...}

17

18   #pragma mark - public methods

19   - (void)samplePublicMethodWithParam:(NSString*)sampleParam

20   {...}

21

22   #pragma mark - life cycle methods

23   - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

24   {...}

25

26   - (void)viewDidLoad

27   {...}

28

29   - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

30   {...}

 5> 大括号写法

  • 对于类的method: 左括号另起一行写(遵循苹果官方文档)

   例子:

1      - (id)initWithNibName:(NSString *)nibNameOrNilbundle:(NSBundle *)nibBundleOrNil

2   {

3       self = [super initWithNibName:nibNameOrNil

4

5       bundle:nibBundleOrNil];

6

7       if (self) {

8             // Custom initialization

9         }

10

11       return self;

12 }

  • 对于其他使用场景: 左括号跟在第一行后边

  例子:

1 - (void)sampleForIf

2 {

3     BOOL someCondition = YES;

4     if(someCondition) {

5         // do something here

6     }

7 }

8 - (void)sampleForWhile

9 {

10     int i = 0;

11     while (i < 10) {

12         // do something here

13         i = i + 1;

14     }

15 }

16 - (void)sampleForSwitch

17 {

18     SampleEnum testEnum = SampleEnumTwo;

19     switch(testEnum) {

20         caseSampleEnumUndefined:{

21             // do something

22             break;

23         }

24         caseSampleEnumOne:{

25             // do something

26             break;

27         }

28         caseSampleEnumTwo:{

29             // do something

30             break;

31         }

32         default:{

33             NSLog(@"WARNING: there is an enum type not handled properly!");

34             break;

35         }

36     }

  • 任何需要写大括号的部分,不得省略

  错误示例:

1 - (void)wrongExamples

2 {

3     BOOLsomeCondition = YES;

4     if (someCondition)

5         NSLog(@"this is wrong!!!");

6     while(someCondition)

7         NSLog(@"this is wrong!!!");

8 }

时间: 2024-10-18 22:07:36

iOS开发代码规范(通用)的相关文章

iOS 开发代码规范有哪些

对于刚刚入门ios的同学来说,iOS 开发代码规范是很重要的知识的,这里就给大家简单总结了一下. 一.工程规范 1.功能分类 根据所做功能的不同,分为不同的功能模块,比如登录模块,首页模块,个人模块等,根据不同的功能,代码必须要放在不同功能的文件夹下. 2.代码文件分类 不管是MVC模式,MVVM模式,或是其他设计模式,在不同的功能模块下,视图控制器(Controllers),视图(Views),模型类(Models),也必须要分别存放. 3.第三方库分类 工程中会经常使用第三方库,在引入第三方

ios开发代码规范

代码规范很重要,一个良好的代码习惯要从一开始就养成 公共类和文件的设计 (网络请求类.数据库类.Model类.View类,Controller<根据流程图>.Handle类<数据处理>.公共头文件<宏.接口的.h{URL}.常量const{通知中心的名字.一些状态码.枚举.结构体}.全局配置(适配{屏幕适配.iOS系统适配}的宏.系统版本判断.颜色值{参考图片})>) 一.文件 1.项目文件必须使用一个有意义的名字. 例如:TestDownImages 2.任何文件的命

IOS开发-代码规范

代码风格的重要性对于一个团队和项目来说不言而喻.网上有许多 Objective-C 的代码风格,但这份简洁而又最符合苹果的规范,同时有助于养成良好的代码习惯,也是我们团队一直遵循的代码风格. 写法没有对错,只是一种规范.各有各的一种规范,仅供参考. # 纽约时报 移动团队 Objective-C 规范指南 这份规范指南概括了纽约时报 iOS 团队的代码约定. ## 介绍 关于这个编程语言的所有规范,如果这里没有写到,那就在苹果的文档里: * [Objective-C 编程语言][Introduc

iOS团队开发代码规范

iOS 开发代码规范 1.命名 https://github.com/Chinamobo/iOS-Team-Norms/blob/master/CodeStyle.md#naming-basic-principle https://github.com/foxsofter/ios-code-style https://github.com/andy0323/iOS-Code-Specification 新建.h,.m文件时,文件名称应与

iOS软件代码规范

在梳理团队开发流程,收集相关流程资料时,在百度文档上发现的一篇iOS软件代码规范文档:写的非常完善,具有很强操作性.百度上下载时花了一个下载币,现和大家共享.下载地址:http://download.csdn.net/detail/smallhorse87/8660881 在此基础上,我添加了客户端上线前收尾工作的备忘事项: APP中是否装备了必备功能:统计,日志收集及发送,版本检测以及自动更新,用户反馈: 确保产品经理和设计师体验过了APP,签字画押.确保APP体现了产品和设计的构想,没有理解

Android开发代码规范(转)

Android开发代码规范 1.命名基本原则    在面向对象编程中,对于类,对象,方法,变量等方面的命名是非常有技巧的.比如,大小写的区分,使用不同字母开头等等.但究其本,追其源,在为一个资源其名称的时候,应该本着描述性以及唯一性这两大特征来命名,才能保证资源之间不冲突,并且每一个都便于记忆. 对于理解应用程序的逻辑流,命名方案是最有影响力的一种帮助.名称应该说明“什么”而不是“如何”.命名原则是:使名称足够长以便有一定的意义,并且足够短以避免冗长.唯一名称在编程上仅用于将各项区分开.以下几点

北京天宇联科技有限责任公司—T语言Ios开发命名规范

T语言(ttyu software language )是一种通过定义的方式自动生成原生态的android.ios和自适应各浏览的h5的web页面的三合一的软件开发语言.T语言是一种简单的,易于使用的开发软件.T语言运用TC简单开发. TC简单开发是国内首款免费多线程的图形界面脚本制作开发工具软件,支持中英文双语言编写脚本程序,综合脚本开发工具,可以说TC开脚本界先河,是免费脚本开发制作工具的首选.通过制作脚本,可以让TC简单开发代替您的双手,自动执行一系列鼠标键动作.能陪伴你每日每夜的脚本开发

web前端开发代码规范

1. 引言 对于一个多人团队来说,制定一个统一的规范是必要的,因为个性化的东西无法产生良好的聚合效果,规范化可以提高编码工作效率,使代码保持统一的风格,以便于代码整合和后期维护.本文档主要描述web项目开发中所使用的html.css.JavaScript等规范,请参与开发相关人员遵循,同时也请各位日后进行补充完善. 2. HTML/CSS规范 2.1 浏览器兼容 根据业务要求而定: 主流程测试:Chrome 30+.IE9+: 完整测试: Chrome 21.IE8+.360浏览器.微信webv

JAVA技术开发规范(4)——JASMP平台的开发代码规范

4.关于代码规范 代码规范对程序员的重要性: 1.在软件开发生命周期中,有80%的时间是用在维护上 2.几乎所有的软件维护者都不是创使人 3.迭代式开发,必须要有清晰.可读性强的代码,以便于快速迭代 4.敏捷开发时,对应文档的输出不是减少,而是更加实用,因此,可交付的易读的代码更为重要了 5.协同协同,必需确保在编码时遵循统一的规范 编码规范是必需的,每个参与人必需严格遵循该规范进行编码. 4.1.命名规范 基本原则: 1.采用英文全称进行命名 2.保持各层级名称基本统一 3.命名英文单词用全称