OC中分类的注意事项

来源:互联网 发布:环境风险评估软件 编辑:程序博客网 时间:2024/05/16 23:02

1.如何正确使用分类:

(1)一个类中如果方法太多,则可以按功能进行分类的划分,比如有一个Person类,Person类中有FriendShip相关的方法,也有Work相关的方法,则可以将方法按功能不同进行划分打散,放到Person+FriendShip和Person+Work分类中。这样做一来在代码管理方面会更加的合理,二来可以根据功能的需要,引用不同的头文件,减少代码的生成量。

(2)私有方法可以放在分类中。特别是在写SDK的时候,你可以将私有方法放在一个叫Person+Private的分类中,你给别人提供的只是一个Person头文件,Person+Private头文件不提供给外界,别人也就不知道Person+Private中的私有方法了。


2.注意事项:

(1)总是为第三方类的分类名称前加前缀:一来这样做在代码阅读上来说容易得多,二来避免不小心写一个和其他分类同名的分类,当然如果同名了,程序依然可以运行,但是编译器还是会报警告。这对于一个高质量代码是不可容忍的。

(2)总是为第三方类的分类方法前加前缀:一般这个前缀可以用你项目的前缀。加前缀的好处可以避免不小心写了一个和别的分类中同名的方法。比如你的NSString分类中有一个叫urlEncodeString的方法,而你在用别人写的代码时,别人也有一个叫urlEncodeString的方法。此时就会产生两个同名的方法。而你调用的urlEncodeString方法则会被最后编译进程序的那个方法所覆盖。并且还不会报错,此时你就会很危险了,因为没有报错,而你的程序却总是执行不正确,这种bug是最难找的。

(3)不应该在分类中添加属性。这里要说明一点的是,如果你用property声明了一个属性,然后你根据其是readonly还是readwrite而写set和get方法,编译器还是不会报错的。但是这样做违背了分类设计的本意,属性是整个类的,分类只是用来添加行为的。

(4)类拓展,也可叫类延续。因为英文有人叫class-Extension,也有叫class-continuation。

I:可以添加属性

II:可以将在.h文件中定义为readonly的属性在这个里面重新定义为readwrite,并且只可在.m文件中write,对外只能是readonly

III:可以将不需要对外公布的协议写在这个里面。

IIII:可以将C++类型的变量写在这个里面,对外只提供一个OC接口。




0 0
原创粉丝点击