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. 一.项目结构管理 ...
随机推荐
- observejs改善组件编程体验
传送门 observejs:https://github.com/kmdjs/observejs 本文演示:http://kmdjs.github.io/observejs/list/ 本文代码:ht ...
- arcgis api for js共享干货系列之一自写算法实现地图量算工具
众所周知,使用arcgis api for js实现地图的量算工具功能,无非是调用arcgisserver的Geometry服务(http://localhost:6080/arcgis/rest/s ...
- Dynamics CRM 2015-如何修改Optionset Default Value
在日常工作中,我们时不时会遇到在CRM测试环境上添加Optionset的时候,Default Value是某个值,但换到Production环境或者其他环境,添加的时候,Default Value可能 ...
- [Modern OpenGL系列(一)]十步搞定OpenGL开发环境
本文已同步发表在CSDN:http://blog.csdn.net/wenxin2011/article/details/51292143 OpenGL官网:https://www.opengl.or ...
- installshield使用教程
从Visual Studio 2012开始,微软就把自家原来的安装与部署工具彻底废掉了,转而让大家去安装使用第三方的打包工具“InstallShield Limited Edition for Vis ...
- ALM损坏后的恢复步骤
ALM是HP出品的软件开发生命周期软件,其全称是Application Lifecycle Management,其采用B/S结构,从需求,业务模型到测试用例和缺陷管理亦应具有,满足了一般软件企业对开 ...
- 2016 DTCC(中国数据库技术大会)
上周去参加了2016 DTCC(数据库技术大会),会议总共持续3天,议题非常多,我这里搜集了最新的公开的PPT内容,有兴趣的同学可以下载看看,PPT合集下载链接为:http://pan.baidu.c ...
- MySQL优化一例
DELIMITER $$ USE `xxx`$$ DROP FUNCTION IF EXISTS `F_getBuluDates`$$ CREATE DEFINER=`root`@`localhost ...
- eclipse 启动到loading workbench... 自动关闭
是由于项目没有正常关闭运行而导致"workbench.xmi"中的"persistedState"标签还保持在运行时的配置造成的. 解决方法: 找到<wo ...
- Python version 3.4 required, which was not found in the registry.解决
问题描述: 在Win7环境下已安装Python3.4,准备安装numpy和nltk,运行安装程序报如题错误,具体解决方案如下: 1.将LOCAL_MACHINE\software\python\Pyh ...