Vì các giải pháp ban đầu đã được đăng tải, tôi sẽ tập trung vào cách dài hơn và tẻ nhạt hơn mà tôi nghĩ là cách thích hợp để xử lý con voi trong phòng. Điều này sẽ giúp bạn về lâu dài.
Tạo một lớp Singleton vì chỉ có thể có một người dùng đăng nhập cùng một lúc.
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;
}
}
}
Chuyển câu trả lời của bạn thành NSDictionary
.
NSDictionary *json_dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];;//From Santosh Reddy's Answer
Điền vào sharedInstance của bạn với các thuộc tính kết quả:
[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"];
Giờ đây, các thuộc tính của người dùng của bạn sẽ có sẵn ở mọi nơi trong Ứng dụng. Bạn chỉ cần nhập SharedUser.h
đến UIView
mong muốn , UIViewController
&nhập sau để truy cập dữ liệu của bạn:
NSString *userId = [SharedUser getInstance].userId;
Cũng lưu ý rằng tôi đang sử dụng mẫu singleton vì tôi giả định rằng bạn chỉ cần xử lý các thuộc tính của một người dùng sẽ được sử dụng trong nhiều bộ điều khiển chế độ xem trong một khoảng thời gian. Nếu bạn cần lưu nhiều người dùng, hãy tạo một lớp mô hình người dùng tương tự và điền chúng theo cách tương tự. (Chỉ cần đừng biến chúng thành singleton).
Ngoài ra, tôi khuyên bạn nên đọc loạt bài hướng dẫn của Ray Wenderlich về:
1. Thiết kế hướng đối tượng
2. Mẫu thiết kế
3. Giới thiệu về các mẫu thiết kế iOS