首页 > 其他 > 详细

黑马程序员——OC代码规范和编程风格

时间:2015-10-13 13:48:38      阅读:238      评论:0      收藏:0      [点我收藏+]

代码写的不够漂亮工整符合规范?大家的代码风格过于迥异阅读困难?

内功深厚的武林高手出招往往平淡无奇。同理,编程高手也不会用奇门怪招写程序。良好的编程风格是产生高质量程序的前提。

  参考资料:IOS Developer Library 对建议的代码规范的说明 ,这里也有翻译成中文版本的。

类(Class)命名原则

  就拿“NSMutableArray”来说 

  NS --- 前缀(Prefix)表示类所属的“包”,这里的NS就表示的是Cocoa的基础类库,取公司名项目名什么的。(NS是NextStep公司的简写)前缀的意义就在于比较直观的划分了类的所属和范围。
  MutableArray --- 类名,简短明确的形容类所表示的内容。首字母大写,大驼峰标示。另外值得注意的是,由于NSMutableArray是NSArray的扩展子类,本质上形容的都是Array,所以应该保留父类的识别字样“Array”,但NSObject到NSArray不应该起名成NSArrayObject,是为了避免了语义的重叠。

 

成员变量与属性存取器(Accessor)命名原则

  这个我不太理解,为什么很多代码里面类成员变量出现了下划线"_",而属性存取方法@property声明时不加下划线,实现时@synthesize又令两个名字相等。 

@interface SunnyTest : NSObject 
{
    NSArray * _array;  
}
@property (nonatomic,retain) NSArray * array;
@end
@implementation SunnyTest
@synthesize array = _array;
@end

  这样做的原因很简单,就是不暴露实例的成员变量,外界只能用@property声明的存取名来访问成员变量,所以就用下滑线加以区分。

  但在类内方法访问成员变量时就直接使用带下划线的名字,最好不要用self.xxxxx来使用,因为使用存取器本来就是对外的,在内部使用可能会造成一些不必要的错误,比如:

self.array = [[NSArray alloc] init]; //内存泄露

  这时就会造成内存泄露,因为[[NSArray alloc] init]生成NSArray对象之后赋值给self.array,由于array的存取方法中包含retain,这会使retainCount变成2,而实际应该是1,内存泄露且很难发现。

  改成这样的写法也是苹果官方推荐的。

_array = [[NSArray alloc] init]; // 官方推荐

 

方法(Method)起名规则

  一个规范的方法读起来应该像一句完整的话,读过之后便知函数的作用。执行性的方法应该以动词开头,小写字母开头,返回性的方法应该以返回的内容开头,但之前不要加get。

- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;
+ (id)arrayWithArray:(NSArray *)array;

  如果有参数,函数名应该作为第一个参数的提示信息,若有多个参数,在参数前也应该有提示信息(一般不必加and)

  一些经典的操作应该使用约定的动词,如initWith,insert,remove,replace,add等等。

 

> 可接受的缩略语

在设计编程接口时,通常名称不要缩写。然而,下面列出的缩写要么是固定下来的要么是过去被广泛使用的,所以你可以继续使用。关于缩写有一些额外的注意事项:

● 标准 C 库中长期使用的缩写形式是可以接受的。如:"alloc","getc"

● 你可以在参数名中更自由地使用缩写。如:imageRep,col(column),obj,otherWin

常见的缩写

缩写

含义

缩写

含义

alloc

Allocate

msg

Message

alt

Alternate

nib

Interface Builder archive

app

Application

pboard

Pasteboard

calc

Calculate

rect

Rectangle

dealloc

Deallocate

Rep

Representation

func

Function

temp

Temporary

horiz

Horizontal

vert

Vertical

info

Information

init

Initialize

max

Maximum

 

 

 

常见的缩写:

ASCII,PDF,XML,HTML,URL,RTF,HTTP,TIFF

JPG,GIF,LZW,ROM,RGB,CMYK,MIDI,FTP

 

黑马程序员——OC代码规范和编程风格

原文:http://www.cnblogs.com/zhangguiguang/p/4874267.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!