Étant donné que des solutions originales ont déjà été publiées, je vais me concentrer sur la manière la plus longue et la plus fastidieuse qui, à mon avis, est la bonne façon de gérer l'éléphant dans la pièce. Cela vous aidera à plus long terme.
Créez une classe Singleton car il ne peut y avoir qu'un seul utilisateur connecté à la fois.
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;
}
}
}
Convertir votre réponse en NSDictionary
.
NSDictionary *json_dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];;//From Santosh Reddy's Answer
Remplissez votre instance partagée avec les attributs de résultat :
[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"];
Désormais, les attributs de votre utilisateur seront disponibles n'importe où dans l'application. Il vous suffit d'importer SharedUser.h
à UIView
souhaité , UIViewController
&tapez ce qui suit pour accéder à vos données :
NSString *userId = [SharedUser getInstance].userId;
Notez également que j'utilise le modèle singleton car je suppose que vous n'avez besoin de gérer que les attributs d'un utilisateur qui seront utilisés dans plusieurs viewcontrollers au cours du temps. Si vous avez besoin de plusieurs utilisateurs enregistrés, créez une classe de modèle utilisateur similaire et remplissez-les de la même manière. (Il suffit de ne pas les rendre singleton).
Je vous suggère également de lire les tutoriels de la série de Ray Wenderlich sur :
1. Conception orientée objet
2. Modèles de conception
3. Introduction aux modèles de conception iOS