Como as soluções originais já foram postadas, vou me concentrar na maneira mais longa e tediosa, que acho que é a maneira correta de lidar com o elefante na sala. Isso irá ajudá-lo a longo prazo.
Crie uma classe Singleton, pois só pode haver um usuário conectado por 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;
}
}
}
Converta sua resposta em
NSDictionary
. NSDictionary *json_dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];;//From Santosh Reddy's Answer
Preencha sua sharedInstance com os 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"];
Agora os atributos do seu usuário estarão disponíveis em qualquer lugar do App. Você só precisa importar
SharedUser.h
para UIView
desejado , UIViewController
&digite o seguinte para acessar seus dados:NSString *userId = [SharedUser getInstance].userId;
Observe também que estou usando o padrão singleton porque estou assumindo que você só precisa lidar com os atributos de um usuário que serão usados em vários controladores de exibição ao longo do tempo. Se você precisar que vários usuários sejam salvos, crie uma classe de modelo de usuário semelhante e preencha-os de maneira semelhante. (Só não os faça singleton).
Também sugiro que você leia os tutoriais da série de Ray Wenderlich sobre:
1. Design Orientado a Objetos
2. Padrões de design
3. Introdução aos padrões de design do iOS