Objective-C中编程中一些推荐的书写规范小结
一、类
1.类名
类名应该以三个大写字母作为前缀(双字母前缀为Apple的类预留)
不仅仅是类,公开的常量、Protocol等的前缀都为相同的三个大写字母。
当你创建一个子类的时候,你应该把说明性的部分放在前缀和父类名的中间。
例如:
如果你有一个ZOCNetworkClient类,子类的名字会是ZOCTwitterNetworkClient(注意"Twitter"在"ZOC"和"NetworkClient"之间);按照这个约定,一个UIViewController的子类会是ZOCTimelineViewController.
2.Initializer和dealloc
推荐的代码组织方式是将dealloc方法放在实现文件的最前面(直接在@synthesize以及@dynamic之后),init应该跟在dealloc方法后面。
如果有多个初始化方法,那么指定初始化方法应该放在最前面,间接初始化方法跟在后面。
如今有了ARC,dealloc方法几乎不需要实现,不过把init和dealloc放在一起,强调它们是一对的。通常在init方法中做的事情需要在dealloc方法中撤销。
关于指定初始化方法(designatedinitializer)和间接初始化方法(secondaryinitializer)
Objective-C有指定初始化方法(designatedinitializer)和间接(secondaryinitializer)初始化方法的观念。designated初始化方法是提供所有的参数,secondary初始化方法是一个或多个,并且提供一个或者更多的默认参数来调用designated初始化的初始化方法。
@implementationZOCEvent
-(instancetype)initWithTitle:(NSString*)title date:(NSDate*)date location:(CLLocation*)location { self=[superinit]; if(self){ _title =title; _date =date; _location=location; } returnself; }
-(instancetype)initWithTitle:(NSString*)title date:(NSDate*)date { return[selfinitWithTitle:titledate:datelocation:nil]; }
-(instancetype)initWithTitle:(NSString*)title { return[selfinitWithTitle:titledate:[NSDatedate]location:nil]; }
@end