Mysql
 sql >> Database >  >> RDS >> Mysql

Come salvare la risposta dal mio server e come posso accedere a quei dati

Poiché le soluzioni originali sono già state pubblicate, mi concentrerò su un modo più lungo e noioso che penso sia il modo corretto di gestire l'elefante nella stanza. Questo ti aiuterà a lungo termine.

Crea una classe Singleton poiché può esserci un solo utente connesso alla volta.

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;
        }

    }
}

Converti la tua risposta in NSDictionary .

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

Compila la tua sharedInstance con gli attributi del risultato:

[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"];

Ora gli attributi del tuo utente saranno disponibili ovunque nell'app. Devi solo importare SharedUser.h al UIView desiderato , UIViewController &digita quanto segue per accedere ai tuoi dati:

NSString *userId = [SharedUser getInstance].userId;

Si noti inoltre che sto usando il pattern singleton perché presumo che sia necessario gestire solo gli attributi di un utente che verranno utilizzati in più viewcontroller nell'arco di tempo. Se è necessario salvare più utenti, creare una classe modello utente simile e popolarli in modo simile. (Solo non farli singleton).

Inoltre, ti suggerisco di leggere i tutorial della serie di Ray Wenderlich su:

1. Design orientato agli oggetti
2. Modelli di progettazione
3. Introduzione ai modelli di progettazione iOS