sistema lleno liberar espacio como almacenamiento activo activar 16gb iphone objective-c cocoa-touch

lleno - liberar espacio sistema iphone



Uso correcto del iPhone del delegado de la aplicaciĆ³n (4)

Matt es un poco modesto. Su publicación sobre el tema es una de las mejores que he leído, y merece un enlace. cocoawithlove.com/2008/11/…

Estoy buscando poder hacer referencia a ciertos estados / objetos a través de cualquier lugar de mi aplicación. Por ejemplo, un usuario inicia sesión en su aplicación, necesito llamar a un servicio web y recuperar la información de los usuarios. Entonces, quiero poder acceder a esta información desde cualquier lugar de la aplicación con algo como lo siguiente:

myAppDelegate *delegate = [[UIApplication sharedApplication] delegate]; user = delegate.u;

¿Está configurando una variable de instancia como un objeto Usuario en el delegado de la aplicación y haciendo referencia a ella desde allí cuando es necesaria una forma inadecuada de solucionarlo? Normalmente lo configuro allí cuando el usuario inicia sesión.

Quería escuchar cómo los profesionales manejan este.


No veo ningún problema con su enfoque. Usualmente uso un singleton para manejar esta situación:

// MyCommon.h: @interface MyCommon class MyCommon : NSObject { int user; }; @property(assign) int user; + (MyCommon *)singleton; @end // MyCommon.m: @implementation MyCommon static MyCommon * MyCommon_Singleton = nil; + (MyCommon *)singleton { if (nil == MyCommon_Singleton) { MyCommon_Singleton = [[MyCommon_Singleton alloc] init]; } return MyCommon_Singleton; } @end

El singleton MyCommon se usa en cualquier lugar de mi aplicación de la siguiente manera:

int user = [MyCommon singleton].user;


Normalmente, solo debe conectar cosas al delegado de la aplicación si:

  • Se crearon a partir del mismo archivo NIB que el delegado de la aplicación (es decir, elementos de UI estáticos en interfaces de una sola ventana)
  • Están asociados con el manejo de eventos a nivel de aplicación que pasa a través del delegado de la aplicación (como el elemento de menú para la ventana de Preferencias)

Para todo lo demás, debe crear un singleton que administre el acceso a ellos.

Jason Coco sugirió el enrutamiento a través del controlador de aplicaciones. En mis programas, normalmente evito esto, ya que considero que implica demasiada responsabilidad en el nivel superior: creo que las cosas deberían autoadministrarse siempre que sea posible y que la gestión de nivel superior solo debe utilizarse cuando existe un requisito de coordinación entre pares. módulos de nivel.

No voy a vincular mi propio blog, pero si me busca en Google y en singletons, probablemente encontrará una publicación que escribí con más detalle.


Por lo general, le pediría esta información al controlador de su aplicación y sería responsable de saber cómo almacenarla / buscarla en cualquier modelo de datos que exista. El controlador de su aplicación puede ser o no el mismo que el de las aplicaciones delegadas (en la mayoría de las aplicaciones simples, es el mismo).