zoukankan      html  css  js  c++  java
  • iOS OC开发代码规范

    1.变量、类名、函数名 使用驼峰命名法

    2.尽量使用完整的单词命名,尽量不采用 缩写单词

    3.类名使用大写字母打头,前缀统一加上HH 例如:HHHomePageController

    4.类的成员变量使用 下划线打头, 例如_age

    5.禁止在项目中的任何地方,包括文件名、目录名、逻辑目录名、项目名等地方使用空格或中文字符

    6.为了不影响阅读,一个方法中代码不要超过100行。一个类中代码不要超过600行, 有超过的再回头重构的时候想办法分解

    7.每个.h文件最开始处用简短文字说明一下该类的功能

    8.类中第___个功能模块以 #pragma mark - 分隔,上空两行,下空一行

    9.常用对象 命名采用后缀,如下 

    UIView: View   例如:UICandidateView : viewCandidate;

    UILabel: Lab 例如: UICopyLabel: labCopy;

    UIButton: Btn 例如:  UISelectedButton:  btnSelected;

    UIImage:  img      imgAvatar;

    UIImageView:  imgViewAbc

    UITextField:  textFiledName;

    UITextView:  textViewEdit;

    NSArray:  arrName;

    NSMutableArray: mArrName;

    NSDictionary: dictPosition;

    NSMutableDictionary :MDictPosition;

    NSString :strName;

    NSMutableString :mStrName;

    NSAttributedString :attributedStrName;

    NSMutableAttributedString :mAttributedStrName;

    10. 文档注释格式如下

        /**

        方法或变量名说明

         @param 参数1说明 

         @param 参数2说明

         ...

         @return 若方法有返回值,则对返回值进行说明

        */

    12. 注意 常量和宏的声明

    CGFloat cellHeight = 12.0f;

    static CGFloat const cellHeight = 12.0f;

    static NSString *const JumpNotificationName = @“JumpNotificationName”;

    13.关于.h空行规定

    13.1.文件说明与头文件包涵(#import)之间空1行

    13.2.头文件包涵(#import)之间如果需要分类区别,各类别之间空1行

    13.3.头文件包涵(#import)与@class之间空2行

    13.4.@interface与@class之间空1行

    13.5.头文件{}里面,空1行开始声明成员对象,如果需要分类别,各类别之间空1行

    13.6.{}外空一行开始书写属性,如果需要分类,各类别之间空1行

    13.7.空1行书写方法,如果各方法之间需要分类别,各类别之间空1行

    13.8.方法完成之后,空1行@end

    13.9.如果需要声明protocal,空2行接着写。通常protocal写在@end后,但是声明在@interface前,也可以另写1个文件

    14.关于.m中空行的规定

    14.1.文件说明与头文件包涵(#import)之间空1行

    14.2.头文件包涵(#import)之间如果需要分类区别,各类别之间空1行

    14.3.@implementation和@synthesize之间空1行,@synthesize不要使用逗号(,)如果需要分类区别,各类别之间空1行

    14.4.@synthesize与 法之间空2 

    14.5.各方法之间空2行

    15.方法里面的空行 

    15.1.方法名后空1行开始写 

    15.2.变量声明后需要空1行,如果需要分类区别区分,各类别之间空1行

    15.3.条件,循环,选择语句,整个语句结束,需要空1行

    15.4.各功能块之间空1行

    15.5.最后1个反括号之前不空

    15.6.注释与代码之间不空

    15.7.#pragma mark与方法之间空1行

    16关于空格

    16.1.h中协议<>前 有1个空格

    16.2.h中成员声明时,类型与变量之间有少1个空格。星号(*)靠近变量,不靠近类型

    16.3.@property后有1各空格,()里面,逗号后面有1个空格,括号外面,先留1个空格,再声明属性

    16.4.方法+,-后,与()之间有1个空格

    16.5.返回类型与*之间有1个空格, 方法参数中返回类型与*之间有1个空格

    16.6.多参数的方法,每个参数后都有1个空格

    17.关于bool值

    17.1.不要 if(obj==nil){},  if(!obj){}

    17.2.比较时把常量放前 可以避免错误

    17.3.不要 if(aBool==YES){},直接 if(aBool){} 或if(!!aBool){}

    18.变量属性名和其它

    18.1.尽量在使用的时候才声明变量,尽量少声明全局变量

    18.2.变量名不要只使1个字 ,尽量能表明变量的意思

    18.3.@synthesize和@dynamic,应该放在类实现的最上面,每一个声明都单独一行

    18.4.协议protocol需要加#pragma marks-来区分

    18.5.obj = nil; delegate也应该在dealloc里面写  delegate = nil;

    19其它

    19.1@interface与@implementation与import之间空1行

    19.2属性的声明和实现,尽量避免书写@synthesize,如果用到@synthesize,要紧接着@implementation书写,不要换行

    19.3成员变量尽量写在@implementation内部,有必要对外暴露时,才写在@interface下

    19.4临时变量的声明,尽量赋初始值, eg: NSInteger a = 0;

    19.5声明多个临时变量,必须另起一行,禁止书写 int a = 3, b = 5;

    19.6临时变量的声明语法写完后,必须各行开始书写逻辑代码,逻辑代码中可以穿插 临时变量的声明,同样必须隔行书写 

    19.7遇到新的代码块,必须隔行书写。包括函数的实现,if, switch分支,while,do while,for循环等

    19.8所有的代码块必须用{}, 即只有1行的if代码也必须用{}, 

     if (success) {
             return YES; 

     }

    19.9所有的二次元运算符,必须以空格隔开,如 x += 12, 不能写成 x += 12;

    19.10.所有的逗号后必须追加一个空格, 例如CGRectMake(12, 12, 43, 40);

    19.11.尽量用NSInteger 取代int, 用NSUInteger 取代unsigned int

  • 相关阅读:
    C# 之 HttpRequest 类
    C# 之 日常问题积累(一)
    DataGrid前台数据绑定技巧
    [转]C,C++开源项目中的100个Bugs
    10行Python代码解决约瑟夫环(模拟)
    基于ASP.NET的comet简单实现 http长连接,IAsyncResult
    架构设计分享之权限系统(看图说话)
    内核request_mem_region 和 ioremap的理解
    【调侃】IOC前世今生 工厂模式 反射 依赖倒置
    ecos内核概览--bakayi译
  • 原文地址:https://www.cnblogs.com/PeterWolf/p/6114048.html
Copyright © 2011-2022 走看看