美文网首页
问题:分类Category和类扩展Extension的区别

问题:分类Category和类扩展Extension的区别

作者: 姜小舟 | 来源:发表于2020-05-09 18:14 被阅读0次
  • Category原则中只能增加方法(能添加属性的原因只是通过runtime解决没有setter和getter方法)
  • Extension不仅可以增加方法,还可以增加属性,只是属性默认的访问权限是 private
  • Extension中声明的方法没有在.m文件中实现,编译器会报警,但是在Category中的方法没有实现的话编译器是不会有任何警告的。这是因为Extension是在编译阶段添加到类中,而Categor是在运行时添加到类中的
  • Extension不能像类别那样拥有独立的实现部分,他所声明的方法只能在其对应的类中实现
  • Extension定义在.m文件的方法是私有的,定义在.h文件的方法是公有的
  • Extension又称匿名分类,一般用来隐藏类的私有消息,你必须有一个类的源码才能添加一个类的Extension,所以对于系统一些类,如NSString,就无法添加类扩展,如果只是简单的创建Extension文件是能够创建成功的,但是如果你在文件中添加属性或者方法,在程序中一旦使用了该属性或者方法程序就会崩溃,会报找不到相对应的方法错误信息。

相关文章

  • iOS开发:Category(分类)和Extension(类扩展

    Category (分类) 和 Extension (类扩展)的理解和区别: Category Category解...

  • iOS基础题

    一、category 和 extension 的区别?(分类和扩展的区别) 1,分类有名字,类扩展没有名字,是一种...

  • 面试 (二) : 基础篇-2

    category 和 extension 的区别• category :分类有名字,类扩展没i有分类名字,是一种特...

  • 面试 (二) : 基础篇/1

    category 和 extension 的区别• category :分类有名字,类扩展没i有分类名字,是一种特...

  • 面试 基础(二)

    category 和 extension 的区别• category :分类有名字,类扩展没i有分类名字,是一种特...

  • IOS总结(六)

    1.category和extension的区别 category:分类有名字,类扩展没有分类名字,是一种特殊的分类...

  • iOS知识基础篇

    category 和 extension 的区别 分类有名字,类扩展没有分类名字,是一种特殊的分类 分类只能扩展方...

  • IOS知识基础篇

    category 和 extension 的区别 分类有名字,类扩展没有分类名字,是一种特殊的分类 分类只能扩展方...

  • 1. iOS面试题基础篇

    category 和 extension 的区别 分类有名字,类扩展没有分类名字,是一种特殊的分类 分类只能扩展方...

  • iOS面试题-基础篇

    category 和 extension 的区别 分类有名字,类扩展没有分类名字,是一种特殊的分类 分类只能扩展方...

网友评论

      本文标题:问题:分类Category和类扩展Extension的区别

      本文链接:https://www.haomeiwen.com/subject/caclnhtx.html