ios开发iOS

读《苹果Cocoa编码规范》笔记

2015-12-17  本文已影响199人  FITZ9311

为什么要有编码规范这么一说呢?你设想一下如果张三写代码一个风格,李四一个风格,当张三去看李四的时候他会极度的不舒服,反过来李四去看张三的代码的时候也会感觉非常的糟糕。所以他们两个人遵循同一个规则的时候,再去看对方的代码的时候就不会不适应,因此指定一个大家都遵循的代码编程风格就至关重要了。对于iOS开发,苹果官方就制定了一套编码规范。作为iOS开发者遵循苹果制定的编码规范写代码,那么在看苹果的官方代码的时候就觉得很轻松了。

命名

这点非常重要!!!没有重复三遍,但是依然是最重要的!!!如果你不是一开始就跟着项目走而是在中途或者是需要你维护一个别人留下的项目的时候。如果项目是经过几手,而且没有统一的命名风格,而且还没有注释。这时候你面对项目,你的内心是崩溃的。如果可以把写这些代码的揪出来,我保证你会把他打的不像人样!好的命名胜过N多的注释!

命名的一般性原则

清晰性

一致性

代码命名的一致性能带给阅读代码者非常的阅读体验,能让人一眼就看出这大概是什么。

不要自我指涉

自我指涉的英文是:self-reference,如果你不明白什么是自我指涉,给你讲个故事吧。从前有座山,山上有座庙,庙里有个和尚,和尚说,从前有座山……

NSString         //okey
NSStringObject   //自我指涉

前缀

前缀不仅可以防止和苹果的命名发生冲突,而且也可以区分软件的功能范围,比如UIKit里面的都以UI开头,看到UI开头的类我们就能知道是UI相关的。

书写约定

书写约定能规范命名,不然你会看到其他语言的影子,比如以前写C++的你就会发现他会带一股浓浓的C++味道。OC也应该有OC的味道。来看看OC对于书写有哪些约定吧!

类与协议命名要注意的事儿

关于头文件

关于方法命名

除了上述要注意的,还有一些小的问题也需要注意。

关于访问方法

访问方法就是我们常说的setter和getter方法。那么在写(或重写)访问方法的时候要注意些什么呢?

- (void) setNoun:(type)aNoun;
- (type) noun;
- (void) setAdjective:(BOOL)flag;
- (BOOL) isAdjective;
- (void) setVerbObject:(BOOL)flag;
- (BOOL) verbObject;

关于委托方法

在开发中会经常用到代理设计模式,但是代理方法也是有一定的命名规则的。委托方法的这些规则也使用于

- (void) windowDidChangeScreen:(NSNotification *)notification;

关于集合方法

集合方法命名有如下一些限制和约定

- (void) insertElement:(elementType)anObj atIndex:(int)index;
- (void) removeElementAtIndex:(int)index;

集合方法的实现要考虑如下细节:

关于方法的参数

关于私有方法

关于函数的命名

在OC中是可以使用C函数的,所以这里的函数指的是C函数。

实例变量与数据类型的命名

实例变量

在为类添加实例变量的时候需要注意以下几点:

枚举常量

其他常量

通知

NSApplicationDidBecomeActiveNotification
NSWindowDidMiniaturizeNotification 
NSTextViewDidChangeSelectionNotification 
NSColorPanelColorDidChangeNotification

开发中的一些小贴士

initialize类方法中,能够编写实现一些延迟执行且只被一次的代码,initialize类方法是由运行时系统在该类响应任何其他消息之前调用的。典型的应用是在其中设置类的版本信息。运行时系统向每个类发送initialize消息,即使该类没有实现initialize,也会调用其基类的某个initialize方法。因此一个类的initialize方法可能会因为存在继承类的缘故被执行多次。因此有必要使用一定的技巧来防止只执行一次的代码被多次执行。如:NSFoo类的initialize方法实现可能如下:

+ (id) initialize{
    if (self == [NSFoo class]){
        //初始化代码
    }
    return self;
}

要注意不应当显式调用initialize方法。如果你需要激活initialize方法,使用[NSFoo self]形式的调用。

小结

习惯是平时一点点养成的,只要坚持就会有好的习惯。

上一篇下一篇

猜你喜欢

热点阅读