2012-07-16 12 views
12

Estoy tratando de planificar cómo agregar un par de métodos a todas las instancias de ciertos objetos. Creo que agregar una categoría al objeto padre (UIViewController) funcionaría para lo que quiero hacer, pero ¿puedo anular un método agregado de esta manera? La mayoría de las veces las subclases utilizarán los métodos predeterminados, pero sé que tendré que anular el método al menos una vez.¿Se pueden anular los métodos de categoría? IOS

¿Qué otros métodos debo considerar para lo que estoy tratando de hacer?

ejemplo de lo que estoy tratando de hacer:

que tiene un conjunto de objetos que actúan como las páginas de un diario. Estas páginas son subclases de UIViewControllers. Quiero agregar métodos para cargar, guardar y similares. En una clase de diario (Subclase de NSObject) tengo una matriz que almacena instancias de cada página de la revista. Lo quiero así que puedo seleccionar una página de la matriz y ejecutar los métodos sin tener que conocer la clase de objeto específico, ya que todos deberían tener los métodos.

Respuesta

22

Respuesta corta: sí, puede. A los efectos de la categoría de herencia, los métodos de una superclase se tratan como métodos que en realidad se definen en la superclase y se pueden anular de la misma manera.

+0

Eso tiene sentido, pero tengo la sensación de que la respuesta larga podría decir algo como "Apple no aprovecha esto" o algo así. – RMDan

+8

Apple no aprueba el uso de una categoría en una subclase para anular un método en la superclase, pero no hay nada de malo en utilizar un método en una subclase para anular una categoría en una superclase. De hecho, cada vez que subclases una clase de framework hay una buena posibilidad de que estés haciendo esto sin darte cuenta. –

+0

Gracias por la respuesta, pero encontré una mejor manera de hacer lo que quiero. No pasó nada con tu respuesta, solo busqué en mi código y encontré un lugar para hacer el código adicional que necesitaba sin tener que agregar métodos. – RMDan

Cuestiones relacionadas