Bastante temprano en mi aplicación, cuando tenía mucha menos experiencia que ahora, quería darle vida a algunas transiciones entre los controladores de vista con mis propias animaciones personalizadas. Sin tener idea de por dónde empezar, busqué un patrón como MVC al que se pudiera acceder desde casi cualquier controlador en cualquier momento, y resulta que un singleton era el camino a seguir.¿Elegir un singleton o una categoría?
Lo que no me di cuenta es que parece haber un odio fuerte y bien defendido sobre el patrón singleton, y yo mismo estoy empezando a ver por qué, pero eso no viene al caso.
Así que, un tiempo después, decidí mover mi misma implementación a una categoría en UINavigationController (después de todo, maneja las transiciones), mantuve las clases originales para comparar, y me pregunto qué método funcionaría mejor. Después de haber probado exhaustivamente ambas implementaciones, puedo decir sin lugar a dudas que son iguales en todos los sentidos, incluida la velocidad, precisión, suavidad, velocidad de fotogramas, uso de memoria, etc. ¿cuál es "mejor" en el sentido de mantenibilidad general?
EDIT: Después de leer los argumentos bien escritos que todos ustedes han hecho, he decidido usar un singleton. @JustinXXVII ha hecho el argumento más convincente (en mi humilde opinión), aunque considero que cada respuesta aquí es igualmente digna de mérito. Gracias a todos por sus opiniones, he votado por encima de todas las respuestas en la pregunta.
No estoy seguro de por qué los que responden a esta pregunta no parecen entender qué es una categoría. Es una parte del lenguaje de Objective C: http://macdevelopertips.com/objective-c/objective-c-categories.html – johnbakers
@ThomasW, las categorías son una forma de extender las clases de ObjC. Mientras que en los viejos tiempos (ObjC1) se usaban para manejar cosas que usamos protocolos hoy, son algo separado (y muy útil. Https://developer.apple.com/library/ios/#documentation/cocoa/ conceptual/objectivec/chapters/occategories.html –