头文件(.h)示例:
// 类的前置声明,除了引用基类的声明外,不得在头文件中引用任何其它的头文件。 // 在头文件中使用到的其它类型,均使用前置声明。 // @classDFMicroApplicationDescriptor; @classDFViewController;
/** * 此处是对类的注释。 为了文档生成工具能生成相应的文档, * 需要提供给外部使用的类必须使用这种格式的注释。 */ @interface DFMicroApplication :NSObject
/** * 对属性的注释 */ @property(nonatomic,strong)DFMicroApplicationDescriptor *descriptor;
/** * 对一个方法的注释。 * * @param targetController 对参数的说明。 * @param parentController 对参数的说明。 * * @return 对返回值的说明 */ - (BOOL)startController:(UIViewController *)targetController animated:(BOOL)animated;
@end |
实现文件(.m)示例:
#import "DFMicroApplication.h" #import "DFMicroApplicationManager.h"
// 私有属性,不需要对外暴露的属性必须声明在实现文件中。 // @interfaceDFMicroApplication ()
@property(nonatomic,strong)NSMutableArray *runningControllers;
@end
@implementation DFMicroApplication
// 对函数实现的说明。 // + (DFMicroApplication *)currentApplication { return [[DFContextsharedContext].applicationManagercurrentApplication]; }
@end |
ü 缩进必须使用制表符,不能使用空格缩进 。
ü 指针星号(*)紧靠变量,与类型之前中空格。如:
- (DFMicroApplication*)currentApplication
ü 在-/+号与类型之间使用空格,如:
- (DFMicroApplication*)currentApplication
ü 属性的各个参数中,在逗号后使用空格,属性类型前后加空格。如:
@property(nonatomic, assign) NSIntegervalue;
ü 关键字@interface,@implementation,@class后有且仅有一个空格。如:
@interface ClassName;
ü 类继承关系中的分号前后各有一个空格。如:
@interface ClassName : SuperClass
@end
ü 关键字(if, while 等)之后,有且只有一个空格。如:
self = [super init];
if (self) {
}
ü 导入头文件区域、类或协议声明、属性声明区域和方法声明区域必须使用空行区分。如:
#import "Foo.h"
#import "Bar.h"
@interface ClassName
@property(nonatomic, strong) NSDate*date;
@property(nonatomic, assign) NSIntegervalue;
- (void)method1;
- (void)method2;
@end
ü 函数体的花括号要换行,其它情况不换行。如:
- (void)init
{
self = [super init];
if (self) {
// ...
}
return self;
}
ü 需要提供给外部调用的类、方法和属性的注释,必须以 /** 开始,以 */ 结束 。如:
/**
* 概要说明。
*
* 详细说明(可选)。
*
* @param name 参数说明。
*
* @return 返回值说明。
*/
- (id)initWithFrame:(CGRect)frame
{
}
ü 内部实现的注释,全部使用"//"。如:
//
// 概要说明。
//
- (id)initWithFrame:(CGRect)frame;
参考官方文档
ü 取值函数,如果以参数形式返回结果,方法名前加get,否则不得使用get。如:
// 结果以返回值形式返回。
//
- (NSString *)name;
// 结果以参数形式返回。
//
- (void)getName:(NSString **)name;
ü 类名、协义名常量中要带模块前辍,防止命名冲突。常量以"k"开头,如:
DFMicroApplication
kDFMicroApplicationDidStart
#import <Foundation/Foundation.h> // good
#import <Foundation/NSArray.h> // avoid #import <Foundation/NSString.h>