चूंकि मूल समाधान पहले ही पोस्ट किए जा चुके हैं, मैं लंबे और अधिक कठिन तरीके पर ध्यान केंद्रित करूंगा जो मुझे लगता है कि कमरे में हाथी को संभालने का उचित तरीका है। यह आपको लंबे समय में मदद करेगा।
सिंगलटन वर्ग बनाएं क्योंकि एक समय में केवल एक उपयोगकर्ता लॉग इन हो सकता है।
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;
}
}
}
अपनी प्रतिक्रिया को NSDictionary
में बदलें .
NSDictionary *json_dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];;//From Santosh Reddy's Answer
परिणाम विशेषताओं के साथ अपना साझा इंस्टेंस पॉप्युलेट करें:
[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"];
अब आपके उपयोगकर्ता के गुण ऐप में कहीं भी उपलब्ध होंगे। आपको बस SharedUser.h
आयात करने की आवश्यकता है वांछित UIView
. के लिए , UIViewController
अपना डेटा एक्सेस करने के लिए निम्नलिखित टाइप करें:
NSString *userId = [SharedUser getInstance].userId;
यह भी ध्यान दें कि मैं सिंगलटन पैटर्न का उपयोग कर रहा हूं क्योंकि मुझे लगता है कि आपको केवल एक उपयोगकर्ता की विशेषताओं को संभालने की आवश्यकता है जिसका उपयोग समय के साथ कई व्यू कंट्रोलर में किया जाएगा। यदि आपको कई उपयोगकर्ताओं को सहेजना है, तो एक समान उपयोगकर्ता मॉडल वर्ग बनाएं और उन्हें समान तरीके से पॉप्युलेट करें। (बस उन्हें सिंगलटन मत बनाओ)।
साथ ही मेरा सुझाव है कि आपको रे वेंडरलिच की श्रृंखला के ट्यूटोरियल को इस पर पढ़ना चाहिए:
1. ऑब्जेक्ट ओरिएंटेड डिज़ाइन
2. डिज़ाइन पैटर्न
3. iOS डिज़ाइन पैटर्न का परिचय