2016-05-17 3 views
0

AFNetworking 3.0を使用します。AFN 3.0を使用して応答を保存し、その応答の特定のパラメータをサーバーに送信する方法はありますか?

携帯電話番号を入力して送信ボタンをクリックすると、サーバーに送信され、サーバーから応答が返されます.2つのパラメータ(id:xx、token:xxxxxなど)があるとします。私は、サーバーからの応答を取得すると、私は2番目のビューに行きたいと私は、ログインボタンをクリックしたときに、私は(私は、以前の応答から得た唯一のトークンを送信したい

-

は今、私の質問はですidではない)。どのようにして前のビューからそのトークンだけを取り出し、現在のビューからそれを送ることができますか?

私はこのように試みましたが、完了していないか、動作していません。 私はこのような応答データを保存しようとしました:

NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]; 
NSLog(@"responseData: %@", str); 

と第二のビューに送信しようとした:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([[segue identifier]isEqualToString:@"loginsegue"]) 
     { 
     loginViewController *lvc= [segue destinationViewController]; 
     lvc.str=_str; 
     } 
} 
+0

[** View Controller間のデータ受け渡し**](http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) – swiftBoy

+0

try: loginViewController * controller =( loginViewController *)segue.destinationViewController; – Meera

+0

変数をappdelegateして、この変数にトークン値を保存しようとすると、どのビューでも値にアクセスできるようになります – iOS

答えて

1

AFNetworkingはよくiOSid型にJSONデータを変換されます。あなたはあなたの応答に基づいてそれを変換する必要があります。

一般的に、このようにすることができます。

一度
NSDictionary *response = (NSDictionary *)responseObject; 
NSString *token = [response valueForKey:@"token"]; 
//Save token some where to use it later. 

、あなたは

  1. ストアそれいくつかの場所ができ、このトークンを持って、NSUserDefaults(推奨しないが、簡単な方法)であってもよいです。
  2. そのトークンを渡す必要があるときはいつでも、私たちのケースNSUserDefaultsに(どこに格納していても)それをフェッチして、それをサーバーに送信する必要があります。

注:トークンが毎回変更されている場合は、一時的に(シングルトンの可能性があります)保存して、必要に応じて使用してください。任意のView Controller内にトークンが必要な場合は、各View Controllerにトークンを渡すべきではありません。グローバルに利用できるようにすることをお勧めします。

関連する問題