Effective Objective-C 2.0 阅读笔记 三

版权声明:欢迎指出错误,作者极懒,常常懒得修改 https://blog.csdn.net/KevinAshen/article/details/86517560

参考文章

用前缀避免命名空间冲突

  • Apple宣称保留所有“两字母前缀”(two-letter prefix)的权利, 因此我们自己的前缀一定要是三个字母
  • 为了避免引用的第三方库引用了你自己本身引用的第三方库, 一般要把你引用的第三方库所有名字都加上自己的后缀。。。(好像很有道理)

提供“全能初始化方法”

  • 类中提供一个全能初始化方法, 让其他的初始化方法均调用这个方法, 该方法应该是最详细的一个而不是最简单的那个
  • 也就是其实自定义的初始化方法要使用super来调用超类的初始化方法

实现description(描述)方法

  • 检验时可以通过字典重写description方法, 用来做检验打印
    - (NSString *)description {
        return [NSString stringWithFormat:@"<%@: %p, %@>", [self class], self, @{
            @"title": _title
        }];
    }
  • 重写debugDescription方法可以让po方法更方便
    - (NSString *)debugDescription {
        return [NSString stringWithFormat:@"%@: %p, \"%@, %@\">", [self class], self, _firstName, _lastName];
    }

尽量使用不可变对象

  • 尽量多使用不可变的对象, 防止数据被篡改
  • 在.h的外部使用readonly, 在.m的class-continuation分类中扩展为readwrite

使用清晰而协调的命名方式

  • 好的OC命名应该像一篇文章一样, 可以一行行读过去
  • int是integer的简写
  • 执行性的方法应该以动词开头,小写字母开头,返回性的方法应该以返回的内容开头, 除非前面要加修饰词,但之前不要加get
  • 有个属性叫enabled, 则其两个存取方法应该分别起名为“setEnabled:”与isEnabled
  • Boolean属性应加is前缀。如果某方法返回非属性的Boolean值, 那么应该根据其功能, 选用has或is当前缀
  • 方法名里不要使用缩略后的类型名称
  • 给方法起名时的第一要务就是确保其风格与你自己的代码或所要集成的框架相符

为私有方法加前缀

  • 给私有方法加前缀, 这样可以很容易地将其与公共方法区分开
  • 不要单用一个下划线做私有方法的前缀, 因为这种做法是预留给苹果公司

猜你喜欢

转载自blog.csdn.net/KevinAshen/article/details/86517560