一、类
1. 类名
类名应该以三个大写字母作为前缀(双字母前缀为Apple的类预留)
不仅仅是类,公开的常量、Protocol等的前缀都为相同的三个大写字母。
当你创建一个子类的时候,你应该把说明性的部分放在前缀和父类名的中间。
例如:
如果你有一个 ZOCNetworkClient 类,子类的名字会是ZOCTwitterNetworkClient (注意 \"Twitter\" 在 \"ZOC\" 和 \"NetworkClient\" 之间); 按照这个约定, 一个UIViewController 的子类会是 ZOCTimelineViewController.
2. Initializer和dealloc
推荐的代码组织方式是将dealloc方法放在实现文件的最前面(直接在@synthesize以及@dynamic之后),init应该跟在dealloc方法后面。
如果有多个初始化方法,那么指定初始化方法应该放在最前面,间接初始化方法跟在后面。
如今有了ARC,dealloc方法几乎不需要实现,不过把init和dealloc放在一起,强调它们是一对的。通常在init方法中做的事情需要在dealloc方法中撤销。
关于指定初始化方法(designated initializer)和间接初始化方法(secondary initializer)
Objective-C 有指定初始化方法(designated initializer)和间接(secondary initializer)初始化方法的观念。 designated 初始化方法是提供所有的参数,secondary 初始化方法是一个或多个,并且提供一个或者更多的默认参数来调用 designated 初始化的初始化方法。
- (instancetype)initWithTitle:(NSString *)title
date:(NSDate *)date
location:(CLLocation *)location
{
self = [super init];
if (self) {
_title = title;
_date = date;
_location = location;
}
return self;
}
- (instancetype)initWithTitle:(NSString *)title
date:(NSDate *)date
{
return [self initWithTitle:title date:date location:nil];
}
- (instancetype)initWithTitle:(NSString *)title
{
return [self initWithTitle:title date:[NSDate date] location:nil];
}
@end
本文地址:https://www.stayed.cn/item/10736
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我