objective-c - 我将在哪里实现一个通用方法,供 3 ​​个不同的 View Controller 使用?

标签 objective-c ios generics implementation

我有 3 个 ViewControllers

这些 Controller 中的每一个都需要对给定的核心数据对象执行计算。

这些计算因对象和 Controller 的类型而异。

方法是,

performTimeOperations:(Year *) // VC1
performTimeOperations:(Month *) // VC2
performTimeOperations:(Day *) // VC3

每一个大概50行代码。

但是每个代码的变化都非常小,我真的很想像这样传递一个 ID,

performTimeOperations:(id)

并让它处理我扔给它的每种类型的对象。

主要是因为我所做的每一个更改,我都必须在 3 个地方进行。

你会在哪里实现这个?以及如何?

我应该查看类别吗?我也不认为这应该放在我的 appDelegate 中......但它肯定比拥有它的 3 个实现更好?

感谢任何建议

谢谢!

努诺

最佳答案

为什么不让所有核心数据对象都继承自实现此方法的公共(public)基类?

即而不是

Day -> NSManagedObject
Month -> NSManagedObject
Year -> NSManagedObject

你会

Day -> MyDateType -> NSManagedObject
Month -> MyDateType -> NSManagedObject
Year -> MyDateType -> NSManagedObject

关于objective-c - 我将在哪里实现一个通用方法,供 3 ​​个不同的 View Controller 使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12055159/

相关文章:

ios - UISLider 以正确的方式改变 UILabel 的值(value)

objective-c - 在 OS X 上创建和使用静态库

Objective-C:将数组值指定为 NSDictionary 的键

iOS:在应用程序处于事件状态时阅读短信,就像 Drivesafe.ly 一样

java - 无法将 ArrayList<Impl> 传递给采用 ArrayList<Interface> 的方法

java - Mockito 转换为泛型

ios - NSUndoManager 调用不再存在的方法

objective-c - 枚举 NSMutableDictionary - 无法从循环内访问对象属性

ios - AVPlayer 拉伸(stretch) HLS 视频的结尾

java - java中如何转换泛型?