向多个类添加公共属性的正确做法是什么?

时间:2014-06-24 18:18:17

标签: objective-c protocols subclassing

假设我有一个表视图控制器(控制静态表视图)和另一个常规视图控制器。

我想为它们添加一个公共属性。在我看来,第一件事是子类化,这意味着让这两个控制器派生自一个共同的抽象超类。在思考了一下之后,我记得协议也可以实现这一点。

我的问题是,哪种方法是正确的做法,还是有更好的做法?

1 个答案:

答案 0 :(得分:1)

子类化可能是正确的方法。协议不会自动添加属性,它们只会规定如果您的类符合类实现它们的特定类。如果您来自Java世界,那么接口将是等效的。

如果要向类的所有实例(例如UITableview控制器)添加通用功能(方法),则类别可能是合适的。缺点是您无法通过类别声明其他实例变量(或属性)(从技术上讲,您可以通过关联对象,但那是另一个兔子洞)。