iOS代码规范
一、文档结构管理
1.建立Libraries文件夹,所有第三方库放入其中。
2.建立Utilities文件夹,自已封装的类放入其中。
3.建立Constants.h头文件,所有的常量定义于其中。Constants.h文件放入Utilities文件组里面。
4.建立Model、View、Controller三个文件夹,每个文件夹里按功能模块分组(例如tabbar里5个模块)
5.建立Images文件夹。图片放入其中。
6.建立Network文件夹。网络请求类放入其中。
7.建立DataBase文件夹。数据缓存类放入其中。
二、编码规范
说明:为了不影响阅读,一个类的代码行数尽量不要超过500行;一个方法尽量不要超过30行。有超过的在重构的时候想办法分解(不要刻意重构)。
2.引入其它类时,若要作为实例变量的在.h中引入。否则在.m中引入。
3.声明实例变量一律以属性声明。
4.类中第个功能模块以 #pragma mark - 分隔,上空两行,下空一行。
5.程序中变量、方法命名尽量能以字面意思表示功能,对于需要用注释来解释的部分代码,注释以如下格式表述:
/**
* 方法或变量说明
* @param 参数1说明(针对方法)
* @param 参数2说明(针对方法)
* @return 若方法有返回值则对返回值作说明
*/
或者
//简短的描述语句 (在方法前或者变量后)
6.类名首字母大写,方法首字母小写,方法中的参数首字母小写,同时尽量让方法的命名读起来像一句话,能够传达出方法的意思,同时取值方法前不要加前
缀“get” 变量名小写字母开头,常量以小写字母k开头,后续首字母大写
7.写delegate的时候类型应该为weak弱引用,以避免循环引用
8.实例变量声明时变量名前面加下划线“_”,局部变量不用加。
9.通知中心注册需要在dealloc中对应remove掉对象,一个对象的delegate对象要在dealloc中及时赋nil。
10.移动端遇到一个常识问题 c = a/b; 没有做任何判断这家出现这样的语句,如果b万一为0呢?是吧所以必须if(b){c= a/b}。
11.一般判断BOOL的时候 例如:BOOL A = [object action];不要直接if(A == YES)这样判断 直接if(A)
三、Xcode配置
1.全部统一用ARC。
2.用Cornerstone管理代码。
3.在项目.pch文件加入一段去除release的NSLog代码:
#ifndef __OPTIMIZE__
#define NSLog(...) NSLog(__VA_ARGS__)
#else
#define NSLog(...) {}
#endif
iOS代码规范的更多相关文章
- (转)ios 代码规范
转自http://blog.csdn.net/pjk1129/article/details/45146955 引子 在看下面之前,大家自我检测一下自己写的代码是否规范,代码风格是否过于迥异阅读困难? ...
- iOS代码规范(OC和Swift)
下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...
- 【转】iOS代码规范
原文地址: http://www.cocoachina.com/ios/20150908/13335.html 简介: 本 文整理自Apple文档<Coding Guidelines for C ...
- iOS 代码规范
1 目的 统一规范XCode编辑环境下Objective-C.swift的编码风格和标准 2 适用范围 适用于所有用Objective-C,swift语言开发的项目. 3 编码规范 3.1 文件 项目 ...
- iOS代码规范之命名规范
技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong 命名规范类命名 首字母大写,之 ...
- iOS - 代码规范的提示
我们在些程序时会发现苹果里面有好多非常好的提示 比如: 1.每次SDK升级后 一些方法的方法已经过时了,这时候会给你提示描述该方法已经过期(作用:1.兼顾老版本 2.给开发者一个提示) 2.有时候项目 ...
- 构建iOS稳定应用架构时方案选择的思考,主要涉及工程结构,数据流思想和代码规范
工程结构架构,减少耦合混乱以及防治需求大改造成结构重构,如何构建稳定可扩展可变换的工程结构的思考 我打算采用Information flow的方式自上而下,两大层分为基础层和展现层的结构.基础层分为多 ...
- iOS 代码开发规范
最近公司因为业务增多,又招了一个iOS小伙伴,内心无比开心呀.但是多了一个人,日常代码开发就要统一规范起来,方便日后维护和查找.下边列一下我日常用到一些代码规范. (一).SVN规范 1.代码一定要先 ...
- iOS团队代码规范
iOS团队代码规范 工程之始可能需要的工具: 1.使用CocoaPods类库管理工具.CocoaPods安装和使用教程. 2.下载安装注释插件VVDocumenter-Xcode. 一.项目结构管理 ...
随机推荐
- Android中的自定义控件(二)
案例四: 自定义开关 功能介绍:本案例实现的功能是创建一个自定义的开关,可以自行决定开关的背景.当滑动开关时,开关的滑块可跟随手指移动.当手指松开后,滑块根据开关的状态,滑到最右边或者滑到 ...
- button自适应宽度 并根据屏幕宽自动换行排列
这是一个封装好的类TagListView, 1. 只需要调用两个方法 设置宽度,间距,边距 并赋给它需要显示的字符串数组; 2. 遵循tagListView的协议, 并实现返回buttonView的方 ...
- React Native JSX value should be expression or a quoted JSX text.
问题描述: 我在使用props时候, 我的写法是这样的 ... <View> <Person name='john' age=32 gender=true></Pers ...
- A星寻路算法介绍
你是否在做一款游戏的时候想创造一些怪兽或者游戏主角,让它们移动到特定的位置,避开墙壁和障碍物呢? 如果是的话,请看这篇教程,我们会展示如何使用A星寻路算法来实现它! 在网上已经有很多篇关于A星寻路算法 ...
- [Erlang 0112] Elixir Protocols
Why Elixir 为什么要学习Elixir?答案很简单,为了更好的学习Erlang.这么无厘头的理由? Erlang语法设计几乎没有考虑过取悦开发者,所以学习之初的门槛略高.对于已经克服了最初 ...
- 企业号微信支付 公众号支付 H5调起支付API示例代码 JSSDK C# .NET
先看效果 1.本文演示的是微信[企业号]的H5页面微信支付 2.本项目基于开源微信框架WeiXinMPSDK开发:https://github.com/JeffreySu/WeiXinMPSDK 感谢 ...
- mysql插入多条数据时间复杂度比较
SQL脚本 select * from users; 方式一: insert into users(name, age, course_id) VALUES("test",1, & ...
- WPF DevExpress 设置雷达图Radar样式
DevExpress中定义的ChartControl很不错,很多项目直接使用这种控件. 本节讲述雷达图的样式设置 <Grid> <Grid.Resources> <D ...
- [iOS]技巧集锦:UITableView自定义Cell中的控件无法完全对齐Cell的左边界和右边界
这是个很诡异的问题,由于一些特殊需求,我的TableView的Cell的背景色是透明,其中的控件会有背景色,第一个控件和最后一个控件我都用IB自动设了约束,对齐Cell的左边界和右边界,但是自动约束很 ...
- Windows10上安装EDEM2.7
这次我们来安装EDEM2.7. 安装软件来自于互联网,本文仅作学习交流之用,工程应用请购买正版. 1 软件准备 从网上找到EDEM2.7安装包,解压后里面包含两个文件,如下图所示. 2 软件安装 鼠标 ...