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

Sådan gemmer du svaret fra min server, og hvordan kan jeg få adgang til disse data

Da originale løsninger allerede er blevet postet, vil jeg fokusere på en længere og mere kedelig måde, som jeg synes er den rigtige måde at håndtere elefanten i rummet på. Dette vil hjælpe dig på længere sigt.

Opret en Singleton-klasse, da der kun kan være én bruger logget ind ad gangen.

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

    }
}

Konverter dit svar til NSDictionary .

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

Fyld din sharedInstance med resultatattributterne:

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

Nu vil din brugers attributter være tilgængelige overalt i appen. Du skal bare importere SharedUser.h til ønsket UIView , UIViewController &skriv følgende for at få adgang til dine data:

NSString *userId = [SharedUser getInstance].userId;

Bemærk også, at jeg bruger singleton-mønster, fordi jeg antager, at du kun behøver at håndtere én brugers attributter, som vil blive brugt i flere viewcontrollere over tid. Hvis du skal have gemt flere brugere, skal du oprette en lignende brugermodelklasse og udfylde dem på en lignende måde. (Gør dem bare ikke singleton).

Jeg vil også foreslå, at du skal læse Ray Wenderlichs serie tutorials om:

1. Objektorienteret design
2. Designmønstre
3. Introduktion til iOS-designmønstre



  1. MYSQL indstiller tidszone i PHP-kode

  2. Ret "FEJL: hver UNION-forespørgsel skal have det samme antal kolonner" i PostgreSQL

  3. Bruger du IF-sætning i MySQL til at opdatere eller indsætte uden Stored Procedure?

  4. JDBCTemplate sæt indlejret POJO med BeanPropertyRowMapper