【问题标题】:Why we need to use category in IOS?为什么我们需要在IOS中使用category?
【发布时间】:2018-07-07 00:30:32
【问题描述】:

我刚刚开始在 ios 中开发应用程序,并且为此阅读了很多教程,但我仍然对该教程不满意。 我想知道理论上为什么我们需要使用类别以及有什么好处。

【问题讨论】:

标签: ios objective-c objective-c-category


【解决方案1】:

引用自

http://www.g8production.com/post/37787310116/categories-in-objective-c-how-to-extend-methods

Difference between Category and Class Extension?

类别和扩展允许您扩展现有类的功能,而无需子类化(不继承任何内容)向现有类添加功能,即使是您没有添加的类有源。

类别允许您通过在接口文件 (.h) 中声明它们并在实现文件 (.m) 中定义它们来向类添加(仅)方法,就像在基本的 Objective-C 类中一样。遗憾的是,类别不能为类声明额外的实例变量。

现在这个声明的方法成为分类类的一部分!!!

可以添加到分类类中的类别数量没有限制,但每个类别名称必须不同,应声明和定义不同的方法集。

编辑

类别

-> 在目标 c 中,当你想在没有继承的情况下为类添加更多功能时,只需使用 category 即可。

-> 类别用于添加新方法而不是属性

.

类扩展

-> 在目标 c 中,当您想将某些属性的行为设为私有时,您可以使用类扩展。

->主要用于属性。

【讨论】:

  • 但是为什么类别我们可以创建我们的自定义类并实现这个功能
  • “被分类类的所有子类继承”的说法不正确,方法成为该类所在类的一部分,而不仅仅是子类。因此,他们对整个应用程序都有礼貌。类别往往被过度使用,在大多数情况下,实例到类的方法更合适。
  • 据我所知,使用大多数类别是因为它们“闪亮”。
  • 它们还减轻了维护大型代码的负担。
  • 如果你从其他地方抓取文本作为答案,链接到原始来源是有礼貌的。 g8production.com/post/37787310116/…stackoverflow.com/questions/3499704/…
【解决方案2】:

类别允许您将方法添加到现有类——甚至是您没有源代码的类。 类别是一项强大的功能,它允许您扩展现有类的功能而无需子类化

How to use category in obj video

【讨论】:

    【解决方案3】:

    使用类别的好处。 如果您使用类别,则无需记住您为该特定功能创建的自定义类。只需使用类别,您就可以向现有类添加新功能,并通过创建相同类的对象来访问它。

    【讨论】:

      【解决方案4】:

      在我的一个应用程序中,我想更改默认字体。因此,我没有在有文本的地方不断更改字体,而是设置了一个类别,将默认字体更改为我想要的字体。

      【讨论】:

        猜你喜欢
        • 2019-06-09
        • 2011-07-05
        • 2016-02-01
        • 2016-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多