iOS学习:iOS代码规范

  • 作者感言
  • 阅读前言
  • iOS代码规范
    • Import规范
    • Define规范
    • Paragma Mark 规范
    • Interface规范
    • implementation规范
    • 实例规范
    • NSDictionary规范
    • NSArray规范
    • 函数规范
    • If-Else规范
    • For-In For 规范
    • Block规范
    • 运算符规范
  • 命名规范
    • 实例命名规范
    • Property命名规范
    • Interface-class命名规范
    • Block命名规范
    • For-In命名规范
  • 布局框架
  • 文件夹层次结构
    • MVC架构
    • MVVM架构

本文已收录到GitHub, 喜欢的朋友可以Star一下: iOSRegulations


作者感言

这篇文章, 部分是收集了网上的iOS开发爱好者的代码规范, 以及我自己的理解, 不一定完全满足所有人, 希望多多见谅, 也同样感谢支持我完成这篇文章的朋友.

刚开始写这篇文章的时候, 我无从下手, 直到我朋友给了我一份JAVA的开发文档规范, 我才慢慢有了清晰的思路, 中间迭代了许多版本, 一次次的修改文章的排版, 关键字的高亮, 以及代码的高亮.

一点点的编写, 一次次的修改, 让我对代码规范有了更深刻的理解, 曾经有人说过, 印度人写代码, 100个人所写的, 看起来像一个人所写的, 不是说印度阿三开挂了, 是他们遵循了一个规范, 无规矩不成方圆, 也就是这个道理.

最后:
如果你有更好的建议或者对这篇文章有不满的地方, 请联系我, 我会参考你们的意见再进行修改, 联系我时, 请备注iOS代码规范文档, 祝大家学习愉快~谢谢~

Cain(罗家辉)

zhebushimengfei@qq.com: 联系方式

350116542: 腾讯QQ


阅读前言

@(Reading Preface)


  • 在阅读代码规范之前,必须先去下载两个插件<XAlign, VVDocumenter>。

  • 文档的目的是描述一些关于iOS编程的标准和惯例,并指导编写稳定的iOS代码。
  • 这些都是基于健全的、充分证明过的软件工程基础上的,并使得代码容易理解、维护和增。
  • 更重要的是,遵循这些规则,iOS开发人员的编程效率将会显著的得到提高。
  • 因为不必花费时间来重新编写代码,而是更容易的在开发过程中,对代码进行修改。
  • 最后,遵循这些规则,可以保持代码的连续性和粘性,提升开发组的效率。

iOS代码规范

@(Code)[Standard]


#Import规范

  1. 当一个Controller或者一个Class中需要用到不同的类和Define时, 我们应当把#import划分.
  • 划分原则: 哪个Controller或者Class是本Controller或者Class的次级就放在一起, 公共ControllerClass就与之前的空一行, 紧跟着下面.

比如:

#import "AspManageServicePasswordViewController.h"
#import "AspResetServicePasswordViewController.h"
#import "AspServicePasswordView.h"#import "NorNavShareView.h"#import "AppDelegate.h"
#import "BCTabBarView.h"#import "ModifyPwdViewController.h"
#import "AspLoginVC.h"

#Define规范

  1. 使用#define时, 必须要以数值对齐.

比如:

#define kLabelSize     20
#define kLabelMargins  20#define kConfirmBottom 63

错误写法:

#define kLabelSize 20
#define kLabelMargins 20#define kConfirmBottom 63

  1. 使用#define定义预编译宏时, 应当把宏定义成全部大写字母, 且与“_”分隔, 此方法是苹果官方所推荐.

比如:

#define NS_AVAILABLE(_mac, _ios) CF_AVAILABLE(_mac, _ios)
#define NS_AVAILABLE_MAC(_mac) CF_AVAILABLE_MAC(_mac)
#define NS_AVAILABLE_IOS(_ios) CF_AVAILABLE_IOS(_ios)

错误写法:

#define kCancelBottom  25
#define kCancelHeight  44
#define kCancelMargins 25
  1. 在代码中尽量减少在代码中直接使用数字敞亮, 而使用#define来进行声明常量或运算.

比如:

#define kTableViewHeight     300
#define kTableViewCellHeight label.height + view.height

错误写法:

- (void)viewDidLoad {[super viewDidLoad];self.tableView.frame = CGRectMake(0, 64, 320, 660);
}
  1. 尽量代码中得重复计算, 比如在代码中很多地方需要使用到屏幕的宽度, 然后再进行计算, 我们就可以把屏幕的宽度进行抽取封装成#define.

比如:

#define AspScreenWidth   ([[UIScreen mainScreen] bounds].size.width)
#define kTableViewHeight 300
#define NAV_VIEW_HEIGHT  64- (void)viewDidLoad {[super viewDidLoad];self.tableView.frame = CGRectMake(0, NAV_VIEW_HEIGHT, AspScreenWidth, kTableViewHeight);
}

错误写法:

- (void)viewDidLoad {[super viewDidLoad];self.tableView.frame = CGRectMake(0, 64, 320, 660);
}

#Paragma Mark 规范

  1. 使用#pragma mark时紧挨着方法名, 且与上一个方法的间距为1空行.

比如:

- (void)mineViewModel {// Code Body
}#pragma mark - TableViewRefresh
- (void)pulldownRefresh:(AspTableView *)tableView {[self.mineViewModel requestDataWithSuccess:nil failure:nil];
}

错误写法:

- (void)mineViewModel {// Code Body
}#pragma mark - TableViewRefresh- (void)pulldownRefresh:(AspTableView *)tableView {[self.mineViewModel requestDataWithSuccess:nil failure:nil];
}

- (void)mineViewModel {// Code Body
}
#pragma mark - TableViewRefresh
- (void)pulldownRefresh:(AspTableView *)tableView {[self.mineViewModel requestDataWithSuccess:nil failure:nil];
}

  1. 当两个方法相近或者都是同一个模块里的方法, 使用#pragma mark加注释来导航代码.

比如:

#pragma mark - Some Mothed
- (void)someMothedOne;
- (void)someMothedTwo;
- (void)someMothedThree;

错误写法:

#pragma mark - 
- (void)someMothedOne;
- (void)someMothedTwo;
- (void)someMothedThree;


- (void)someMothedOne;
- (void)someMothedTwo;
- (void)someMothedThree;

@Interface规范

  1. @Interface里遵循的Delegate, 或者是DataSource方法, 必须以,间隔, 且空一格.

比如:

@interface AspEasyOwnResetPasswordViewController () <UITextFieldDelegate, MBAlertViewDelegate, UITableVIewDelegate, UITextViewDelegate, UIAlertViewDelegate, 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部