Estoy trabajando en una clase para mi aplicación de iPhone, y me gustaría que se registre y tenga en cuenta los cambios de estado de la aplicación (UIApplicationDidEnterBackgroundNotification
, etc.). ¿Hay alguna forma de registrar una clase para notificaciones sin tener que mantener un objeto instanciado en la memoria? Solo quiero que las notificaciones apropiadas llamen a la clase para iniciar, hacer algunas cosas y luego dejar la memoria nuevamente.¿Puedo registrar una clase para NSNotifications? ¿Puedo usar métodos de clase con NSNotifications?
En este momento me he lo siguiente en el método init:
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(handleEnteredBackground)
name: UIApplicationDidEnterBackgroundNotification
object: nil];
y este método en otras partes del archivo .m de la clase:
- (void) handleEnteredBackground {
NSLog(@"Entered Background"); }
que una instancia de la clase una vez bajo applicationDidLoad
, pero dado que no hago nada con eso, supongo que ARC elimina el objeto de la memoria y la aplicación se bloquea (sin ningún código de error útil, fíjate) cuando voy a cerrarlo. Si cambio handleEnteredBackground
a un método de clase con un signo "+", recibo errores de selector no válidos cuando cierro la aplicación.
El objetivo final es crear una instancia de una clase una vez en el ciclo de vida de una aplicación y poder responder a los cambios de estado de la aplicación sin ningún código adicional fuera de la clase. Asumir iOS 5 + Xcode 4.2+
Esto suena como una gran solución ... Voy a darle un tiro y aceptar la respuesta una vez que he tenido la oportunidad de probarlo ¡fuera! – Amos
No hay problema. Simplemente escriba aquí si tiene más preguntas. – hwaxxer