1.ARC和MRC混合编译:
如果一个工程为MRC,其中要添加ARC的文件:
选择target -> build phases -> compile sources -> 单击ARC的文件将compiler flags设置为:-fobjc-arc
如果一个工程为ARC,其中要添加MRC的文件:
同样的路径,然后单击MRC的文件将compiler flags设置为:-fno-objc-arc。
2.模拟多继承
在C++和JAVA中都可以实现多继承 但是在OC中没有多继承 但是oc中并没有限制一个类中只能遵循一个协议 在编程中可以通过协议的方式 实现类似于多继承 比如在类A、B、C 中B C各声明一个协议 A类中遵循B C的协议 并实现协议中的方法 可以实现简单的类似于多继承的方式
3.类别和继承的用法与区别
类别是给一个类添加一些方法 比如给NSString添加一个字符串逆序的方法 当一个字符串调用该方法时候就会返回一个逆序的字符串(具体实现逆序步骤方法就不说了)这中方法只能给一个类添加一个新的方法和功能 不能改变原有的方法 但是类别能获取该类的所有变量(不论共有的还是私有的) 又比如SDWebImage 给 UIImageView 增加了 setImageWithURL:方法。给使用者提供了很大的方便 如果在编程中遇到一个类中没有的方法 但是在类里要很多地方都需要用的到 那就不妨给这个类加一个类别把 可以提高开发效率的。
继承是子类继承父类的所有对外提供的方法和变量,当然如果父类的方法不能满足子类的需求,子类完全可以在父类的基础上进行方法的扩充或许重写父类的方法 继承不能调用父类私有的方法和变量,如果子类中声明了 与父类相同的变量,那么子类不能再访问父类中同名的这个变量 ,子类的变量会覆盖该变量(注意不是删除是覆盖)
网友评论