一,关于空行

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;

 
以上是我的一些总结

最新文章

  1. centos 格式化分区
  2. SharePoint 2013 REST 服务使用简介
  3. String 对象是不动态改变长度的
  4. 二模 (11) day2
  5. LPC1768之中断
  6. c++错误修复 数据库无法打开 无法右击 run outtiime
  7. jQuery基础与实例
  8. Sql遍历数据库
  9. HtmlParser的使用-爬虫学习(三)
  10. 使用JavaScript进行数组去重——一种高效的算法
  11. 天方夜谈&#183;数据结构&#183;Queue
  12. 二分(HDU2289 Cup)
  13. jeecg自定义datagrid查询
  14. 本文之后都以Vol1来指代
  15. iOS Xcode 10: Multiple commands produce
  16. HDU 1171 01背包
  17. SpingMVC的&lt;context:component-scan&gt;包扫描踩坑记录
  18. jqGrid属性中文详细说明
  19. [Asp.net mvc]Html.ValidationSummary(bool)
  20. SNMP学习笔记之Centos7配置SNMP服务

热门文章

  1. Delphi中文本文件的操作
  2. Delphi自定义消息应用及delphi托盘实现
  3. uploadify在struts2下的使用
  4. Java IO详解(转)
  5. python_Opencv_处理鼠标事件
  6. Android 自定义CheckBox样式
  7. String,StringBuffer与StringBuilder的差别??
  8. RSA 非对称加密 数字签名 数字证书
  9. iTerm2和oh-my-zsh的个性化定制
  10. 异步tcp通信——APM.Core 服务端概述