16、提供“全能初始化方法”
在类中提供一个全能初始化方法,并于文档里指明。其他的初始化方法均应调用此方法。
如全能初始化方法与超类不同,则应覆写超类中的对应方法。
如果超类的初始化方法并不适用于子类,那么应该覆写这个超类方法,并在其中抛出异常。
17实现description方法
实现description方法,返回一个有意义的字符串,用于描述该实例
-(NSString *)description{
return [NSString stringWithFormat:@"<%@ :%p, %@>",
[self class],
self,
@{@"title":_title,
@"latitude":@(_latitude),
@"longitude":@(_longitude)}
];
}
若想在调试时打印出更详尽的对象描述信息,则应实现debugDescription方法。
18、尽量使用不可变对象
尽量创建不可变的对象。
若某属性仅可于对象内部修改,则在“class-continuation分类”中将其由readonly 属性拓展为readwrite属性。
不要把不可变的collection作为属性公开,而应提供相关方法,以此修改对象中的不可变collection。
19使用清晰协调的命名方式
起名时遵从标准的Objective-C命名规范,这样创建出来的接口更容易为开发者所理解。
方法名言简意赅,从左向右读起来像日常用语中的句子才好。
方法名里不要使用缩略后的类型名称。
给方法起名时的第一要务就是确保其风格与你自己的代码或所要集成的框架相符。
20为私有方法名加前缀
给私有方法名加上前缀,这样很容易将其与公共方法区分开。
不要单用一个下划线作为私有方法的前缀,因为这种做法是预留给苹果公司做的。