¿Cómo implementar correctamente una clase de Servicios en mi aplicación iOS?

Mi actual rascador de cabezas: implementando una clase de modelo específicamente para llamadas de servicio a mi aplicación de rieles.

Aquí está el escenario:

Tengo una clase llamadaServicio eso es una subclase de NSObject.El archivo de implementación tiene algunos métodos definidos ... veamosdoSignUp.estoy usandoRed de redes para comunicarse con la api.De miSignUpViewController, Creo una instancia de miServicio clase y llamadadoSignUpEl método funciona como se esperaba y recibo la respuesta adecuada del servidor.

Ahora viene la parte que no entiendo completamente:

Red de redes Utiliza bloques para sus llamadas de servicio.Dentro deéxito Bloque llamo un método de ayuda llamadohandleSignUp (También enServicio clase). Este método esencialmente analiza el JSON y creo un nuevoUsuario (Subclase NSObject) fuera de ella. loshandSignUp método luego devuelve elUsuario objeto.

En este punto tengo un nuevoUsuario objeto y tengo que enviar ese objeto de nuevo a miSignUpViewController... ¿Cómo puedo hacer eso?

¿Debo tratar de agregar ese objeto a laAppDelegate y acceder a ella desde elSignUpViewController? Esta solución podría funcionar para acceder a varias propiedades globales, pero cuando lo haríaSignUpViewController saber cuándo acceder?¿Debo intentar agregar una referencia a laSignUpViewController en elServicio ¿clase? Eso parece contraproducente ... También podría agregar el método.doSignUp yhandSignUp alSignUpViewController. Me parece que es miServicio La clase no debe tener conocimiento de ningún otro viewControllers.

Vea a continuación mis ejemplos de código:

Servicio.h

//Service.h
#import <UIKit/UIKit.h>
#import "AFNetworking.h"
@interface Services : NSObject
- (void) doSignUp:(NSMutableDictionary*)params;
@end

Servicio.m

// Service.m
 #import "Services.h"
 #import "Config.h"
 @implementation Services

 - (void) doSignUp:(NSMutableDictionary*)params {
     NSURL *url = [NSURL URLWithString:@"http://MYURL.COM"];
     AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
     NSURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"signup.json" parameters:params];
     AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
                                    success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
         [self handleSignUp:JSON];
     } failure:nil];
     [operation start];
 }

 - (User*) handleSignUp:(NSMutableArray*)json {
     User * user = nil;
     if ([[json valueForKey:@"success"] isEqualToString:@"true"]) {
           // create user here ...
     }
     return user;
 }

SignUpViewController.h

#import "Service.h"
 @interface SignUpViewController : UIViewController {
     Service * service;
 }

 @property (nonatomic, strong) Service * service;

SignUpViewController.m

#import "SignUpViewController.h"
 @interface SignUpViewController ()
 @end

 @implementation SignUpViewController

 @synthesize service = __service;
 - (IBAction) initSignUp:(id)sender {
      // create params...
      [self.service doSignUp:params];
 }

Una vez más, todo este código hace lo que se supone que debe hacer ... solo necesito saber cómo debe comunicarse todo. ¿Cómo puedo alertar alSignUpViewController lahandleSignUp ha sido llamado y un nuevoUsuario objeto está disponible?

Gracias por tu tiempo, Andre

Respuestas a la pregunta(4)

Su respuesta a la pregunta