首页 IOS编码及注释规范

IOS编码及注释规范

举报
开通vip

IOS编码及注释规范真诚为您提供优质参考资料,若有不当之处,请指正。真诚为您提供优质参考资料,若有不当之处,请指正。PAGE/NUMPAGES真诚为您提供优质参考资料,若有不当之处,请指正。IOS开发编码及命名规范目录TOC\o"1-3"\h\z\u1、目的PAGEREF_Toc282254537\h32、适用范围PAGEREF_Toc282254538\h33、编码规范PAGEREF_Toc282254539\h33.1、文件PAGEREF_Toc282254540\h33.2、注释PAGE...

IOS编码及注释规范
真诚为您提供优质参考资料,若有不当之处,请指正。真诚为您提供优质参考资料,若有不当之处,请指正。PAGE/NUMPAGES真诚为您提供优质参考资料,若有不当之处,请指正。IOS开发编码及命名 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 目录TOC\o"1-3"\h\z\u1、目的PAGEREF_Toc282254537\h32、适用范围PAGEREF_Toc282254538\h33、编码规范PAGEREF_Toc282254539\h33.1、文件PAGEREF_Toc282254540\h33.2、注释PAGEREF_Toc282254541\h33.3、编码排版格式PAGEREF_Toc282254542\h53.4、命名规范PAGEREF_Toc282254543\h63.4.1、保留字PAGEREF_Toc282254544\h63.4.2、方法PAGEREF_Toc282254545\h73.4.3、变量PAGEREF_Toc282254546\h73.4.4、常量PAGEREF_Toc282254547\h83.4.5、类PAGEREF_Toc282254548\h93.4.6图片命名PAGEREF_Toc282254549\h93.5、修改规范PAGEREF_Toc282254550\h93.5.2、新增代码行PAGEREF_Toc282254551\h93.5.2、删除代码行PAGEREF_Toc282254552\h103.5.3、修改代码行PAGEREF_Toc282254553\h103.5.4、其他规范PAGEREF_Toc282254554\h101、目的统一规范XCode编辑环境下Objective-C的编码风格和 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 2、适用范围适用于所有用Objective-C语言开发的项目。3、编码规范3.1、文件1)项目文件必须使用一个有意义的名字一般用bundleId最后一位如lender.xcodeproj’。2)公共文件统一命名为’Public.h’。任何文件的命名尽量不要以中文命名。3)对于文件的目录要按如下结构创建:-Document(文档所在路径)-Help(帮助文件所在路径)-图片等资源文件放在单独的目录与组(Group)中,如Images。-所有的view放在单独的组(Group)中,如CustomView。-所有的viewController放在单独的组中,如viewControllers。-引用外部文件或者某个单独的功能时,放在单独的组中,例如:程序中使用了coverflow功能,引用openflow的文件时,将其全部文件放在openFlow这个组中。其view和viewcontroller等文件的组织不受上面所规定的影响。4)bundleId命名:公司的域名反过来最后一位是项目名称一般越短越好举例:com.ppdai.*(com.ppdai.lender)3.2、注释1)注释可以采用’/**/’和’//’两种注释符号,涉及到多行注释时,尽量使用’/**/’。2)对于一行代码的注释可放在前一行及本行上,不允许放在下一行,更不允许在一行语句的中间加入注释。3)单元文件的文件头注释说明应按如下格式:////文件名// 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 名////Createdby创建者on日期.//Copyright2010xxxXXX.Allrightsreserved.////系统名称://功能描述://修改记录:(仅记录功能修改)//张三2012-02-02创建该单元//小明2010-03-02增加本地点单功能。//4)方法前面的注释遵循以下格式:如果某项没有,则以N/A 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示例如:/**********************************************************函数名称:-(BOOL)showFiveAndSixStairRoomCountByStatu函数描述:显示特定状态下五楼和六楼的房间数输入参数:(NSString*)statu:某状态。输出参数:(int*)roomCount:该状态房间数量。返回值:BOOL:操作是否成功。**********************************************************/-(void)showFiveAndSixStairRoomCountByStatu:(NSString*)staturoomCount:(int*)_roomCount;或/**********************************************************函数名称:-(NSUInteger)showFiveAndSixStairRoomCount函数描述:显示五楼六楼的房间数。输入参数:N/A输出参数:N/A返回值:NSUInteger:房间数量。**********************************************************/-(NSUInteger)showFiveAndSixStairRoomCount5)不必每行都加注释,在3~10行左右的段落做注释要好于每行都做注释,显而易见的代码不加注释。例如:if(!returnValue)//调用登录过程失败无用的注释{NSLog(@”登录失败”);}3.3、编码排版格式1)代码的缩进应使用空格(SPACE),不能使用制表符(TAB),并且缩进以2个字符为单位。2)中括弧的每一个括弧在源程序中要单独占一行。例如//不正确用法for(inti=0;i<10;i++){……}//正确用法for(inti=0;i<10;i++){……}3)空格的使用a)关键字与其后的表达式之间要有空格,如:if(expr)或for(expr)b)单目操作符不应与它们的操作数分开(如’!’和’^’等)。c)除’,’外,其它双目操作符应与它们的操作数用空格隔开。例如i=i+1;//错误的写法,操作符两端没有空格i=i+1;//正确的写法,if(a>b)//错误的写法,逻辑判断符号两端没有空格if(a>b)//正确的写法d).h中 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 <>前面有一个空格。e).h中成员声明时,类型与变量之间有至少1个空格。*号靠近变量,不靠近类型。f)@property后留1个空格,()里面,逗号紧跟前一变量,与后一变量之间留1个空格。()外面,先留1个空格,再声明属性。g)方法的+,-后面与()之间留1个空格。h)返回类型与*之间留1个空格,方法参数中返回类型与*之间留1个空格。i)在多参数方法中,每个参数后面都有1个空格。4)每行只能有一个语句例如//不正确写法NSUIntegerobjectIndex,stuffCount;或objectIndex=objectIndex+10,stuffCount=stuffCount+20;或@synthesizeMyView,MyLabelView;//正确写法NSUIntegerobjectIndex;NSUIntegerstuffCount;或objectIndex=objectIndex+10;stuffCount=stuffCount+20;或@synthesizeMyView;@synthesizeMyLabelView;5)关于空行a).h中的空行eq\o\ac(○,1)、文件说明与头文件包含(#import)之间空1行eq\o\ac(○,2)、头文件包含(#import)之间,如果需要分类区别,各类别之间空1行。eq\o\ac(○,3)、头文件包含(#import)与@class之间空2行。eq\o\ac(○,4)、@interface与@class之间空1行。eq\o\ac(○,5)、头文件{}里面,空1行开始声明对象成员,如果需要分类区别,各类别之间空1行。eq\o\ac(○,6)、头文件{}外,空1行书写属性,如果需要分类区别,各类别之间空1行。eq\o\ac(○,7)、属性下面空1行开始写方法,如果需要分类区别,各类别之间空1行。eq\o\ac(○,8)、方法完成后,空1行@end。eq\o\ac(○,9)、如果需要声明protocol,空2行接着写。通常protocol写在@end后面,但是声明在@interface之前。b).m中的空行eq\o\ac(○,1)、文件说明与头文件包含(#import)之间空1行eq\o\ac(○,2)、头文件包含(#import)之间,如果需要分类区别,各类别之间空1行。eq\o\ac(○,3)、@implementation和@synthesize之间空1行,如果需要分类区别,各类别之间空1行。eq\o\ac(○,4)、@synthesize与方法之间空1行。eq\o\ac(○,5)、方法与方法之间空1行。C)方法里面的空行eq\o\ac(○,1)、变量声明后需要空1行,如果需要分类区别,各类别之间空1行。eq\o\ac(○,2)、条件、循环,选择语句,整个语句结束,需要空1行。eq\o\ac(○,3)、各功能快之间空1行。eq\o\ac(○,4)、最后一个括弧之前不空行。eq\o\ac(○,5)、注释与代码之间不空行。eq\o\ac(○,6)、#pragmamark与方法之间空1行。d)每行代码最多不得操作100个字。设置如下:Xcode=>Preferences=>TextEditing=>PageGuideatcolumn/输入100即可。3.4、命名规范3.4.1、保留字Objective-c语言的保留字或关键词应全部使用小写字母,除下表中保留字外,private、protected、public、在类型说明中也作为保留字使用。还有nonatomanic,retain,readwrite,readonly等也有特殊的使用场合。_Bool_Complex_Imaginaryautobreakbycopybyrefcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifininlineinoutintlongonewayoutregisterrestrictreturnselfshortsignedsizeofstaticstructsuperswitchtypedefunionunsignedvoidvolatilewhile3.4.2、方法1)方法的名称应全部使用有意义的单词组成,且以小写字母开头,多单词组合时,后面的单词首字母大写。例如:-(void)getUserInformation……2)设置类变量的内容的方法应使用set作为前缀,读取变量的内容的方法应使用get作为前缀。例如:-(void)getUserName;-(void)setUserName:(NSString*)userName;3)方法参数命名首字母小写,之后每个单词首字母都大写,具有足够的说明性,不需要添加类型前缀例如:-(void)sendUserInfo:(NSDictionary*)userInfo4)书写1.留一个空格在-或+和返回类型之间,但参数列表里的参数之间不要留间隔,每个冒号之前都必须有对该参数的说明词,如:-(void)doSomethingWithString:(NSString*)stringnumber:(int)num2.如果参数过多,推荐每个参数各占一行。使用多行的情况下,在参数前加冒号用于对齐,如:-(void)doSomethingWith:(GTMFoo*)theFoorect:(NSRect)theRectinterval:(float)theInterva3.4.3、变量1)变量必须起有意义的名字,使其他组员可以很容易读懂变量所代表的意义,变量命名可以采用同义的英文命名,可使用几个英文单词,第一个单词首字母小写,其他单词首字母大写。例如:NSString*username;2)对于一些特殊类型的变量,命名时要带上类型,如NSArray的变量命名为xxxArray,其他的如xxxDictionary,xxxSize等。这样就可以从名称上知道是什么类型的变量。千万不能将NSArray的变量命名为xxxDictionary。3)对于要和interfacebuilder关联的的输出口变量,命名时要后缀以特定的控件名。例如:IBOutletUILabel*userNameLabel;4)对于使用c语言形式声明的变量,一些特定类型可采用一定的简写:例如:指针类型:P结构体类型:Rec数组类型:ArrCoreGraphic:CG等。循环控制变量通常使用单一的字符如:i、j、k等。使用有意义的名字,如objectIndex也是可以的。5)尽量避免使用全局变量,如果必须使用全局变量则必须加前缀‘Pub_’,同时应在变量名称中体现变量的类型。6)私有实例变量前加一个下划线,如_myPrivateVarible。7)枚举类型命名1.首字母大写,之后每个单词首字母都大写,最后加“s”2.枚举变量使用枚举类型去掉“s”作为前缀,每个单词首字母大写,中间不允许加下划线例如:typedefenumUIControlEvents{UIControlEventTouchDown,UIControlEventTouchUpInside}UIControlEvents;3.4.4、常量1)避免在程序中直接出现常数,使用超过一次的应以宏定义的形式来替代。2)常数的宏定义应与它实际使用时的类型相一致。如以3.0来定义浮点类型,用3表示整型。3)常量(预定义,局部常量等)使用小写k开头的驼峰法例如:kInvalidHandle,kWritePerm4)一些常量前加特殊前缀,可以作为不同常量的区分,例如:UserDefaultsKey的变量前加UDKEY_,NotificationNameKey前面加NNKEY_,DictionaryKey前面加DICTKEY_,3.4.5、类类命名首字母大写,之后每个单词首字母都大写使用能够反映类功能的名词短语文件和类同名举例:BaseClient、ImageStore特殊类命名如果是视图控制器的子类应添加后缀“VC”或者“ViewController”如果是视图的子类应添加后缀“View”如果是按钮的子类应添加后缀“Button”举例:SettingsVC、NavigationView继承自UIView的类以View结尾。例如:OperatorUsersInfomationView,LabelView等。所有保存数据的实体以Model结尾。例如:UserModel分类(类别)命名与类命名相同,此外需添加要扩展的类名和“+”举例:NSString+URLEncoding协议(委托)命名与类命名相同,此外需添加“Delegate”后缀举例:ReplyViewDelegate3.4.6图片命名1.使用英文,首字母大写,之后每个单词首字母都大写并添加模块名作为前缀,避免冲突图片应该与类文件一样,按模块分组放置分组命名2.使用英文,首字母大写,之后每个单词首字母都大写,每个分组使用模块的名字,使用的开源库统一放在“Library”分组下,使用的公共组件统一放在“Common”分组下,视图控制器及AppDelegate统一放在“Controllers”分组下3.5、修改规范3.5.1、注释1.文件都包含文件头,要说明文件名、XXX、创建时间、变更记录2.多人协作完成项目时,public接口的每个方法都应该添加关于函数,参数,返回值以及副作用的注释3.当if语句的判断条件复杂时,需要用注释说明判断内容4.接口类(继承于BaseClient)的头文件每个方法前都应该注明方法的作用l3.5.2、新增代码行新增代码行的前后应有注释行说明。//修改人,修改时间,修改说明新增代码行//修改结束3.5.2、删除代码行删除代码向的前后用注释行说明//修改人,修改时间,修改说明要删除的代码行(将要删除的语句进行注释)//修改结束3.5.3、修改代码行修改代码行以注释旧代码行后再新增代码行的方式进行。//修改人,修改时间,修改说明//修改前代码行开始//修改前代码行//修改前代码行结束//修改后代码行开始修改后代码行//修改结束3.5.4、其他规范1.操作符前后都要加空格2.避免相同的代码段在多个地方出现3.语句嵌套层次不得超过3层4.每个实现文件建议在500行以内,不能超过1000行,超过之后应考虑通过抽象类对代码进行重构5.及时删除或注释掉无用的代码6.UITableViewCell里面的networkclient都要委托出来7.点击按钮之后需要切换按钮图片,当这两张图片没有关联时(例如一张图片相比另一张图片有选中效果),不应该设置为UIControlSelected8.控件布局使用相对坐标9.确定不使用的代码应该删除
本文档为【IOS编码及注释规范】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
夕夕资料
拥有专业强大的教研实力和完善的师资团队,专注为用户提供合同简历、论文写作、PPT设计、计划书、策划案、各类模板等,同时素材和资料部分来自网络,仅供参考.
格式:doc
大小:77KB
软件:Word
页数:0
分类:企业经营
上传时间:2021-06-21
浏览量:0