sql >> Base de Datos >  >> RDS >> Mysql

Cómo guardar la respuesta de mi servidor y cómo puedo acceder a esos datos

Dado que ya se han publicado soluciones originales, me centraré en una forma más larga y tediosa, que creo que es la forma adecuada de manejar el elefante en la habitación. Esto te ayudará a largo plazo.

Cree una clase Singleton ya que solo puede haber un usuario conectado a la vez.

SharedUser.h

#import <Foundation/Foundation.h>
@interface SharedUser : NSObject

@property (strong, nonatomic) NSString* userId;
@property (strong, nonatomic) NSString* userName;
@property (strong, nonatomic) NSString* subscriptionStatus;
@property (strong, nonatomic) NSString* registerDate;
@property (strong, nonatomic) NSString* expiryDate;
+(SharedUser*) getInstance;

@end

SharedUser.m

#import "SharedUser.h"

@implementation SharedUser



static SharedUser * sharedInstance;



+(SharedUser*) getInstance
{
    @synchronized(self)
    {
        if(sharedInstance == nil)
        {

            sharedInstance = [[SharedUser alloc] init];
            sharedInstance.userName = @"";
            sharedInstance.userId = @"";
            sharedInstance.subscriptionStatus = @"";
            sharedInstance.registerDate = @"";
            sharedInstance.expiryDate = @"";
            return sharedInstance;
        }
        else
        {
            return  sharedInstance;
        }

    }
}

Convierta su respuesta en NSDictionary .

NSDictionary *json_dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];;//From Santosh Reddy's Answer

Rellene su instancia compartida con los atributos de resultado:

[SharedUser getInstance].userId = [json_dict objectForKey:@"user_id"];
[SharedUser getInstance].userName = [json_dict objectForKey:@"username"];
[SharedUser getInstance].subscriptionStatus = [json_dict objectForKey:@"subscription_status"];
[SharedUser getInstance].registryDate = [json_dict objectForKey:@"register_date"];//Better to use NSDate type instead of NSString
[SharedUser getInstance].expiryDate = [json_dict objectForKey:@"expiry_date"];

Ahora los atributos de su usuario estarán disponibles en cualquier lugar de la aplicación. Solo necesita importar SharedUser.h a la UIView deseada , UIViewController &escriba lo siguiente para acceder a sus datos:

NSString *userId = [SharedUser getInstance].userId;

También tenga en cuenta que estoy usando un patrón singleton porque asumo que solo necesita manejar los atributos de un usuario que se usarán en múltiples controladores de vista a lo largo del tiempo. Si necesita guardar varios usuarios, cree una clase de modelo de usuario similar y rellénelos de manera similar. (Simplemente no los hagas singleton).

También le sugiero que lea los tutoriales de la serie de Ray Wenderlich en:

1. Diseño orientado a objetos
2. Patrones de diseño
3. Introducción a los patrones de diseño de iOS