工程目录和编码规范

作者: yuanxy 分类: 技术研发 发布时间: 2019-10-31 16:39

学会使用空格

声明类和方法时,注意空格的使用。

命名规则

总的来说,iOS命名两大原则是:可读性高和防止命名冲突(通过加前缀来保证)。Objective-C 的命名通常都比较长,名称遵循驼峰式命名法。一个好的命名标准很简单。就是做到在开发者一看到名字时,就能够懂得它的含义和使用方法。另外,每个模块都要加上自己的前缀,前缀在编程接口中非常重要,可以区分软件的功能范畴并防止不同文件或者类之间命名发生冲突,比如相册模块(PhotoGallery)的代码都以PG作为前缀:PGAlbumViewController,PGDataManager。

参考1:Zen and the Art of the Objective-C Craftsmanship

参考2:Objective-C之优雅的命名

常量的命名

对于常量的命名最好在前面加上字母k作为标记。如:

static const NSTimeInterval kAnimationDuration = 0.3;

定义作为NSDictionary或者Notification等的Key值字符串时加上const关键字,以防止被修改。如:

NSString *const UIApplicationDidEnterBackgroundNotification

若常量作用域超出编译单元(实现文件),需要在类外可见时,使用extern关键字,并加上该类名作为前缀,如:

extern NSString *const PGThumbnailSize

全局常量(通知或者关键字等)尽量用const来定义。因为如果使用宏定义,一来宏可能被重定义,二来引用不同的文件可能会导致宏的不同。

枚举的命名

很简单,到SDK里面看看Apple是怎么做的:

typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {
UIViewAnimationTransitionNone,
UIViewAnimationTransitionFlipFromLeft,
UIViewAnimationTransitionFlipFromRight,
UIViewAnimationTransitionCurlUp,
UIViewAnimationTransitionCurlDown,
};

这边需要注意的是:枚举类型命名要加相关类名前缀并且枚举值命名要加枚举类型前缀。

变量和对象的命名

给一个对象命名时建议采用修饰+类型的方式,如果只用修饰命名会引起歧义,比如title (这个到底是个NSString还是UILabel?)。 同样的,如果只用类型来命名则会缺失作用信息,比如label (好吧,我知道你是个UILabel,但是我不知道它是用来做什么的?)。So,正确的命名方式为:

titleLabel //表示标题的label, 是UILabel类型
confirmButton //表示确认的button, 是UIButton类型

对于BOOL类型,应加上is前缀,比如- (BOOL)isEqualToString:(NSString *)aString这样会更加清晰。如果某方法返回非属性的 BOOL 值,那么应根据其功能,选用 has 或 is 当前缀,如:

- (BOOL)hasPrefix:(NSString *)aString

如果某个命名已经很明确了,为了简洁可以省去类型名。比如scores,很明显是个array了,就不必命名成scoreArray了。

注释

方法或属性前写必要的注释,以便后期维护。

实例变量

这里注意@property的使用。

文件的简洁

尽量保证.h文件的简洁。

pragma mark

必要的使用“#pragma mark”,方便阅读

参考

ViewController代码规范参考

ViewController代码规范参考

苹果官方编码规范参考

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注