EOC:<Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法>
最近在阅读的一本书,对于ios初级开发者想要进一步理解OC这门语言有很大的帮助。
今天看了本书的第三章《接口与API设计》和第四章《协议与分类》。先来说说第三章,里面包含本书的第15~22条编程技巧。
第15条:多用前缀(例如公司、程序应用名或二者的关联名)来命名类,例如:EOCLibrary;
第16条:提供“全能初始化方法”,说实话,这节我看得有点云里雾里的
第17条:复写description发昂发有助于调试,还有debugdescription是在调试器中控制台命令打印对象才调用的;
第18条:多用readonly属性,主要是打包给外部使用的时候不让外部设置内部属性吧,这里还涉及到“竞争条件”的问题,也就是在对象内部写入某属性时,对象歪的观察者也正读取该属性,也提到了将数据存储操作设为同步操作的解决方法;
第19、20条:都是将命名规范的,一个是方法名要尽量清晰明了,另一个给私有方法加一个前缀,比如:
-(void)p_privateMethod{
}
第21条:Object-C的错误模型:OC里的异常不同于其他语言,异常只应该用于极其严重的错误,而一般的错误应该用NSError来处理
第22条:NSCopying,如果想让自己的类支持拷贝功能,就需要实现NSCopying协议。
-(id)copyWithZone:(NSZone *)zone{
}
其中还有一个概念就是:深复制和浅复制;深复制:在复制对象自身时,将其底层数据也一并复制,也就是属性之类的一并复制吧。。
浅复制只复制容器对象本身,不复制里面的数据。
我们一般的“copy”都是浅复制,要使某个对象实现深复制,就需要实现一个深拷贝的方法。