Effective Objective-C 2.0笔记(三)

2018-05-30  本文已影响18人  _小沫

Effective Objective-C 2.0笔记(一)
Effective Objective-C 2.0笔记(二)
Effective Objective-C 2.0笔记(三)

第三章 接口与API设计

第15条:用前缀避免命名冲突

第16条:提供“全能初始化方法”

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(nullable NSString *)reuseIdentifier

这里必要信息是:style,reuseIdentifier样式及重用标识

第17条:实现description方法

通过NSLog打印并查看对象信息时,对象会收到description消息,返回对象相关的信息。但默认的description方法返回的信息,有时并不是我们想要的,通过覆写description可以实现输出我们在定义的信息。类似的,还有debugDescription方法,它和description区别:debugDescription方法是开发者在调试器以控制台命令打印对象时调用的(LLDB "po"命令)。当我们通过LLDB "po"命令打印对象信息时,就可以覆写debugDescription返回我们需要的信息。

第18条:尽量使用不可变对象

第19条:使用清晰而协调的命名方式

第20条:为私有方法名加前缀

为私有方法名加前缀,很容易区分公共方法和私有方法,有助于调试。使用何种前缀,由个人喜好决定,一般用p_作为前缀,尽量不要单独使用_作为前缀只是预留给苹果爸爸的。

第21条:理解错误模型

  1. 用异常机制处理错误

但这种机制,如果抛出异常,那么本应在作用域末尾释放的对象不会自动释放,也就是说默认情况下不是“异常安全的”;所以,异常只应该应用于极其严重的错误,异常抛出后无须考虑恢复问题,而且应用程序此时应该退出。

  1. NSError
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;
- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(nullable NSDictionary<NSFileAttributeKey, id> *)attributes error:(NSError **)error

第22条:理解NSCopying协议

上一篇 下一篇

猜你喜欢

热点阅读