简要介绍下iOS程序的头文件和.m文件的程序结构布局,参考一些文章,和程序.
.h文件
#import 头文件.
宏定义, (使用#define XXX), 这里的宏是别的模块要用的,如果不需要别的模块使用,
放到.m中, 宏的命名使用大写单词, 单词间下划线分隔这种形式, 如:#define MAX_VALUE 3
常量定义, (使用const), 命名使用k前缀的形式,如:
const NSInteger kMaxValue = 3; const NSString * const kItemCaption = @"Hello";
枚举定义, 枚举值名为类型名加成员名,如:
typedef enum { UITableViewCellStyleDefault, UITableViewCellStyleValue1, } UITableViewCellStyle; typedef enum { UITableViewCellAccessoryNone, // 这里把Type省略掉了,虽然违反上面的规则,但以代码阅读顺畅优先. UITableViewCellAccessoryCheckmark } UITableViewCellAccessoryType;
前置声明, 如:
@class, @protocol等.@interface 声明.
实例变量, 命名以下划线为前缀.
类方法声明.
属性声明.
方法声明.
其他的@interface 或 @protocol声明.
.m文件
#import 与.m文件同名的头文件, 如Hello.m, 要#import “Hello.h”, 并且这个放在第一行.
#import 系统头文件, 按首字母顺序排列.
#import 工程内使用的其他头文件, 按首字母顺序排列.
.m文件所用的宏定义,常量, 枚举等定义,顺序同头文件.
辅助函数原型前置声明,可以用注释标识.
// Helper function prototypes@interface 的扩展声明, 用于类的内部私有实现, 如:
@interface Hello() @end
@implementation段部分.
@synthesize 声明,使用指定下划线变量名的形式,如
@synthesize height = _height;
类方法的定义.
#pragma mark - Class Methods
init函数, dealloc函数的定义, 可用#pragma mark标识.
#pragma mark - Lifecycle management // 先写dealloc函数的定义. - (void)dealloc { } - (id)init { } - (id)initXXXX { }
对于UIViewController的派生类,写view相关的生命期管理部分.
#pragma mark - View lifecycle management - (void)viewDidLoad { } - (void)viewDidUnLoad { } - (void)viewWillAppear { } - (void)viewDidAppear { } - (void)viewWillDisappear { } - (void)viewDidDisappear { } - (void)loadView { }
Overrides部分, 比如覆盖UIViewController的某些方法, mark中显示的标出覆盖的方法所在的类的名称.
#pragma mark - UIViewController Overrides - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { }
Delegate方法定义, 比如:
#pragma mark - UITableViewDelegate Methods #pragma mark - UITableViewDataSource Methods
控件的动作部分, 比如
#pragma mark - User Actions
公共函数定义部分.
#pragma mark - Public Methods
访问器部分.
#pragma mark - Accessors
私用方法定义部分
#pragma mark - Internal Methods #pragma mark - Private Methods
辅助函数定义部分.
#pragma mark - Helper functions