Objective-C中编程中一些推荐的书写规范小结

前端技术 2023/09/04 IOS

一、类
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 初始化的初始化方法。

复制代码 代码如下:

@implementation ZOCEvent

- (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

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。