【发布时间】:2018-07-07 00:30:32
【问题描述】:
我刚刚开始在 ios 中开发应用程序,并且为此阅读了很多教程,但我仍然对该教程不满意。 我想知道理论上为什么我们需要使用类别以及有什么好处。
【问题讨论】:
标签: ios objective-c objective-c-category
我刚刚开始在 ios 中开发应用程序,并且为此阅读了很多教程,但我仍然对该教程不满意。 我想知道理论上为什么我们需要使用类别以及有什么好处。
【问题讨论】:
标签: ios objective-c objective-c-category
引用自
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 中,当您想将某些属性的行为设为私有时,您可以使用类扩展。
->主要用于属性。
【讨论】:
类别允许您将方法添加到现有类——甚至是您没有源代码的类。 类别是一项强大的功能,它允许您扩展现有类的功能而无需子类化
【讨论】:
使用类别的好处。 如果您使用类别,则无需记住您为该特定功能创建的自定义类。只需使用类别,您就可以向现有类添加新功能,并通过创建相同类的对象来访问它。
【讨论】:
在我的一个应用程序中,我想更改默认字体。因此,我没有在有文本的地方不断更改字体,而是设置了一个类别,将默认字体更改为我想要的字体。
【讨论】: