在ios中,关于Category的概念,非正式协议,类扩展

来源:互联网 发布:手机阅读pdf软件 编辑:程序博客网 时间:2024/05/16 06:21

 1.Gategory(分类、类别):是不改变原类的基础上,给类添加新的方法。

    作用:1⃣可以讲一个庞大的类分模块开发

               2⃣对现有类进行方法的扩展

               3⃣对类中的方法有归档类的作用。

  

   注意事项:

              1⃣分类中只能增加方法,不能在类中增减实例变量

              2⃣分类和原类中的方法名具有相同的方法名,优先执行分类中方法。

              3⃣如果有多个分类也有相同方法名,这时会根据编译最后的分类中的方法执行。

              4⃣分类的方法中,可以使用实例变量。

              5⃣在分类中可以声明@proprey参数,但是编译的时候会报错。

   定义方式:

            在.h文件中

            @interface  类名 (分类名)

                 //声明方法

            @end

            在. m文件中

            @implementtation 类名 (分类名)

            //实现相应的方法

            @end

 2.非正式协议

    非正式协议是一个特别的分类,它是给NSSobject类或者Foundation增加方法的分类,在分类中指声明方法,在子类中具体实现方法。

 3.类扩展

    类扩展(Class Extendsion)是一个特别的分类,又称匿名类,它是一个没有名字的分类。

    类扩展特点:

           1⃣我们不需要指定它的名字

           2⃣可以在源代码的类中使用,在ui编写代码中在 .m文件中写。

           3⃣可以创建它的数量不限,而且在类扩展中可以添加实例变量并能修改只读属性改为读写属性。

4. 分类 和 类扩展的区别

    分类需要名字、不可以有实例变量。

   类扩展不要名字,可以在源代码的类中,修改只读属性为读写属性、可以使用实例变量。

0 0
原创粉丝点击