Da bereits Originallösungen gepostet wurden, werde ich mich auf einen längeren und mühsameren Weg konzentrieren, der meiner Meinung nach der richtige Weg ist, um mit dem Elefanten im Raum umzugehen. Dies wird Ihnen langfristig helfen.
Erstellen Sie eine Singleton-Klasse, da immer nur ein Benutzer angemeldet sein kann.
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;
}
}
}
Konvertieren Sie Ihre Antwort in NSDictionary
.
NSDictionary *json_dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];;//From Santosh Reddy's Answer
Füllen Sie Ihre sharedInstance mit den Ergebnisattributen:
[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"];
Jetzt sind die Attribute Ihres Benutzers überall in der App verfügbar. Sie müssen nur SharedUser.h
importieren zum gewünschten UIView
, UIViewController
&geben Sie Folgendes ein, um auf Ihre Daten zuzugreifen:
NSString *userId = [SharedUser getInstance].userId;
Beachten Sie auch, dass ich Singleton-Muster verwende, da ich davon ausgehe, dass Sie nur die Attribute eines Benutzers behandeln müssen, die im Laufe der Zeit in mehreren Viewcontrollern verwendet werden. Wenn Sie mehrere Benutzer speichern müssen, erstellen Sie eine ähnliche Benutzermodellklasse und füllen Sie sie auf ähnliche Weise. (Machen Sie sie einfach nicht Singleton).
Außerdem würde ich vorschlagen, dass Sie Ray Wenderlichs Serien-Tutorials lesen sollten auf:
1. Objektorientiertes Design
2. Designmuster
3. Einführung in iOS-Designmuster