1、用前缀避免命名空间冲突,
其中前缀一般为三个大写字母。不仅仅是类名,应用程序中的所有名称都应加前缀,包括分类、C函数、全局变量。
2、提供“全能初始化方法”,
所有对象都要初始化,对外提供多个初始化方法,但所有初始化方法都会调用全能初始化方法。
如果子类的全能初始化方法与超类方法的名称不同,那么总应覆写超类的全能初始化方法,
有时候可能需要编写多个全能初始化方法,比如某对象实例有两种完全不同的创建方式,必须分开处理,那么就会有这种情况。
在类中提供一个全能初始化方法,并于文档里指明,其他初始化方法均应调用此方法,若全能初始化方法与超类不同,则需覆盖超类中对应的方法,如果超类的初始化方法不适用于子类,那么应该复写这个超类方法,并在其中抛出异常。
3、实现description方法,
打印object对象时候,object对象会受到description消息,该方法所返回的描述信息将取代“格式化字符串”。为了更明确展示对象信息,一般重写description方法,并在里面输出累的名字、指针地址,然后根据需要打印属性信息等
如果想在调试时候打印出详细信息,则应事先debugDescription方法
4、尽量使用不可变对象
设计类的时候,应充分利用属性来封装数据,对不需要改的属性可以设为只读。只有在必要的时候,才将属性对外公布。在公共接口中声明的属性在内部可以重新声明,前提是需要修改属性的特征,例如将readonly改为readwrite
开发者最好不要从底层直接修改对象中的数据
5、使用清晰而协调的命名方式
(1)方法命名:OC的方法命名虽然繁琐,但是可读性高
如果方法的返回值是新建,那么方法名的首个词应是返回值的类型,除非前面还有修饰语
应该把参数类型的名词放在参数面前
如果方法要在当前对象上操作,那么就应该包含动词
不要使用str这样的简称,应该用string这样的全称
bool属性应加is前缀
(2)类和协议的命名
起名遵守OC命名规范,方法名言简意赅,方法名里不要使用缩略后的类型名称,给方法起名时第一要务就是确保其风格与你自己的代码或所需要集成的框架相符合。
(3)为私有方法名钱加前缀
为私有方法加前缀,就很容易把私有方法和公有方法区分开,还可以便于修改方法名或方法签名,有了前缀就很容易看出来哪些方法可以随意修改,哪些方法不应轻易改动
前缀不要以“_”,因为这是给苹果公司自已用的
6、OC的错误类型
OC中的错误类型只有在极其严重的时候使用,一般情况是用NSErrors,经由方法的”输出参数返回给调用者“传递给方法的参数是个指针,而该指针本身又指向另外一个指针,那个指针指向NSError对象,,所以可以直接把错误信息塞到NSError里面。