iPhone开发:Objective C 代码规范-iOS总结版
一,关于空行
A:.h中的空行
1,文件说明与头文件包涵(#import)之间空1行
2,头文件包涵(#import)之间,如果需要分类区别,各类别之间空1行
3,头文件包涵(#import)与@class之间空2行
4,@interface与@class之间空一行
5,头文件{}里面,空1行开始声明对象成员,如果需要分类区别,各类别之间空1行
6,{}外空1行,书写属性,如果需要分类区别,各类别之间空1行
7,空1行开始写方法,如果需要分类区别,各类别之间空1行
8,方法完成后,空1行@end
9,如果需要声明protocal,空2行接着写。通常protocal写在@end后面,但是声明在@interface前面,也可以另写一个文件
B:.m中的空行
1,文件说明与头文件包涵(#import)之间空1行
2,头文件包涵(#import)之间,如果需要分类区别,各类别之间空1行
3,@implementation和@synthesize之间空一行,@synthesize不要使用逗号(,)如果需要分类区别,各类别之间空1行
4,@synthesize与方法之间空2行
5,各方法之间空2行
C:方法里面的空行
1,方法名后空1行开始写
2,变量声明后需要空1行,如果需要分类区别,各类别之间空1行
3,条件,循环,选择语句,整个语句结束,需要空1行
4,各功能块之间空1行
5,最后一个反括号之前不空行
6,注释与代码之间不空行
7,#pragma mark与方法之间空1行
二,关于空格
1,.h中协议<>前面有1个空格
2,.h中成员声明时,类型与变量之间有至少1各空格。星号(*)靠近变量,不靠近类型。(部分习惯,所有变量可以以*对齐,中间留空)
3,@property后有1各空格,()里面,逗号后有1个空格,括号外,先留1个空格,再声明属性
4,方法+,-后,与()之间有1个空格
5,返回类型与*之间有1个空格,方法参数中返回类型与*之间有1个空格
6,多参数的方法,每一个参数后面都有1个空格
三,关于布尔值
1,不要用if(obj==nil){},而用if(!obj){}
2,比较时把常量放前面可以避免错误
不要用if(aIntValue==255){},而用if(255==aIntValue){},避免漏掉一个“=”,而变成赋值
3,不要用if(aBool==YES){},直接用if(aBool){}或if(!!aBool){}
四,变量属性名和其它
1,尽量在使用的时候才声明变量,尽量少用全局变量
2,变量名不要只使用一个字母,尽量能表示变量的意思
3,@synthesize和@dynamic,应该放在类实现的最上面,每一个声明都单独一行
4,协议protocls需要加#pragam marks-来区分
5,释放时应该[obj release],obj = nil; delegate也应该在dealloc里面delegate = nil;
iPhone开发:Objective C 代码规范-iOS总结版的更多相关文章
- [转]iOS开发总结之代码规范
转自:http://www.cocoachina.com/ios/20151014/13678.html 命名规范 总 的来说, iOS命名两大原则是:可读性高和防止命名冲突(通过加前缀来保证). O ...
- iOS开发 objective C 代码布局
代码布局抛弃storyboard,用代码生成界面,它的优劣不谈 首先在项目设置中,更改应用的"入口" 不选main,清空它 然后在AppDelegate.m中,更改(添加内容),别 ...
- (开发)ESLint - 代码规范
参考文档:http://eslint.cn/ ESLint 是在 ECMAScript/JavaScript 代码中识别和报告模式匹配的工具,它的目标是保证代码的一致性和避免错误.在许多方面,它和 J ...
- (转)ios 代码规范
转自http://blog.csdn.net/pjk1129/article/details/45146955 引子 在看下面之前,大家自我检测一下自己写的代码是否规范,代码风格是否过于迥异阅读困难? ...
- 代码规范、代码复审、PSP
作业三: 代码规范.代码复审.PSP 代码规范 代码规范的重要性 一.规范的代码可以促进团队合作 一个项目大多都是由一个团队来完成,如果没有统一的代码规范,那么每个人的代码必定会风格迥异.且不说会存 ...
- laravel代码规范强制检查
目录 介绍 代码规范检查与修复 在git commit时自动检查代码规范 后记 介绍 在团队协作开发中,代码规范是必要的.以前的规范都是自己定,然后手动检查,很难做到有效的约束. 现代的PHP,则有得 ...
- 【汇总】涉及iOS&iPhone开发相关文章汇总
此文章汇总本博客中有涉及iPhone开发的相关文章,不定时更新中... 1.NSUserDefaults快速存储数据: http://www.cnblogs.com/ios-wmm/archive/2 ...
- iOS开发教程之:iPhone开发环境搭建
安装条件: 硬件:一台拥有支持虚拟技术的64位双核处理器和2GB以上内存的PC. 注意:运行MAC OS,需要电脑支持虚拟技术(VT),安装时,需要将VT启动,在BIOS中开启. 软件: Window ...
- iphone开发 IOS 组织架构图
转载自 :http://blog.csdn.net/mashi321323/article/details/18267719 登录|注册 mashi321323的专栏 目录视图 ...
随机推荐
- 可伸缩性/可扩展性(Scalable/scalability)
原文地址:http://www.jdon.com/scalable.html 可伸缩性(可扩展性)是一种对软件系统计算处理能力的设计指标,高可伸缩性代表一种弹性,在系统扩展成长过程中,软件能够保证旺盛 ...
- linux获取CPU温度
Centos系列 1 yum install lm_sensors 2 sensors-detect 3 sensors Ubuntu系列(多了service module-init-tools st ...
- K - Leapin' Lizards - HDU 2732(最大流)
题意:在一个迷宫里面有一些蜥蜴,这个迷宫有一些柱子组成的,并且这些柱子都有一个耐久值,每当一只蜥蜴跳过耐久值就会减一,当耐久值为0的时候这个柱子就不能使用了,每个蜥蜴都有一个最大跳跃值d,现在想知道有 ...
- java中输入方式Scanner和BufferedReader
Scanner 在java.util包中,需要引入时可以用import java.util.*;或者import java.util.Scanner; 工作原理:通过new创建一个Scanner对象, ...
- KVM几种缓存模式
原文在这里: http://pic.dhe.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=%2Fliaat%2Fliaatbpkvmguestca ...
- mybatis使用时org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):的错误
最近在使用mybatis时,出现了 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 这 ...
- android学习之4种点击事件的响应方式
如题,下面就一一列出对点击事件响应的4种方式: 第一种:内部类的形式: package com.example.dail; import android.net.Uri; import android ...
- motan源码分析六:客户端与服务器的通信层分析
本章将分析motan的序列化和底层通信相关部分的代码. 1.在上一章中,有一个getrefers的操作,来获取所有服务器的引用,每个服务器的引用都是由DefaultRpcReferer来创建的 pub ...
- Linux crontab 命令详解(含配置文件路径)
编辑/etc/crontab 文件配置cron cron 服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服 ...
- 《C专家编程》之一
一.解决函数返回指针的几种方法 1. 返回一个指向字符串常量的指针. 例子: char* func() { rturn "Only work for simple strings" ...