【问题标题】:iOS SDK - Reusing methods across multiple classesiOS SDK - 跨多个类重用方法
【发布时间】:2013-07-10 08:03:30
【问题描述】:
我正试图围绕 Objective-c 中的一些 OOP 特性展开思考。似乎鼓励使用协议,但不鼓励扩展类以添加功能。
我的问题:
当您单击文本字段时,我有一些大块的代码会滚动屏幕。我不想把这些巨大的代码块放在每个视图控制器中。我只是想对它们做一些参考。
我应该扩展父类吗?或者使用协议还是什么?
整个协议对我来说似乎很奇怪,因为它看起来只是告诉您需要为类创建更多函数而没有实际定义方法的作用。
我迷路了
【问题讨论】:
标签:
ios
methods
singleton
protocols
encapsulation
【解决方案1】:
通过在带有此签名的 .h 文件上声明它们,然后在 .m 文件上实现它们,使它们成为类方法
+ (return_type) someMethodName
【解决方案2】:
我通常将 UIViewController 子类化,将我的代码放在它们的上,然后从“具体”视图控制器继承。
但是如果你需要继承 UIViewController 的子类以及 UIViewController 本身,你可能需要考虑将代码放在 UIViewController 的类别中。但这也假设您不需要向类添加任何属性,因为这在类别中是不可能的。