sql >> データベース >  >> RDS >> Mysql

サーバーからの応答を保存する方法、およびそのデータにアクセスするにはどうすればよいですか

    オリジナルの解決策はすでに投稿されているので、私は部屋の中の象を扱う適切な方法であると私が思うより長くて退屈な方法に焦点を合わせます。これは、長期的には役立ちます。

    一度にログインできるユーザーは1人だけなので、シングルトンクラスを作成します。

    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
    

    sharedInstanceに結果属性を入力します:

    [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人のユーザーの属性のみを処理する必要があると想定しているため、シングルトンパターンを使用していることに注意してください。複数のユーザーを保存する必要がある場合は、同様のユーザーモデルクラスを作成し、同様の方法でそれらを設定します。 (シングルトンにしないでください)。

    また、RayWenderlichのシリーズチュートリアルを読むことをお勧めします:

    1。オブジェクト指向デザイン
    2。デザインパターン
    3。 iOSデザインパターンの紹介



    1. リソースID#4 PHP MYSQL

    2. MySQL文字列内の特定の文字の他のすべてのインスタンスを置き換える方法は?

    3. oracle11gおよびjdk1.6で使用するjdbcjarと、db自体に接続する方法

    4. mysqlのGREATESTに似たSQLServer2008の機能?