0

を使用しますAFNetworking 3.0

携帯電話番号を入力して送信ボタンをクリックすると、最初のビューでサーバーに送信され、サーバーから応答が返されます。その応答で、2 つのパラメーター (id:xx、token:xxxxx など) を取得するとします。

今私の質問は-

サーバーから応答を取得したら、2番目のビューに移動し、ログインボタンをクリックすると、以前の応答から取得したトークンのみを送信したい(idではありません)。以前のビューからそのトークンのみを取得するにはどうすればよいですか?現在のビューから送信します。

このように試しましたが、完了しないか、機能しません。次のような応答データを保存しようとしました:

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

2番目のビューで送信しようとしました:

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

1 に答える 1

1

AFNetworkingJSONのデータをid型にうまく変換していiOS ます。応答に基づいて変換するだけです。

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

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

このトークンを取得したら、次のことができます

  1. NSUserDefaults などの場所に保存します (推奨されませんが、簡単な方法です)。
  2. 次に、そのトークンを渡す必要があるときはいつでも、(保存した場所はどこでも) それをフェッチし、この場合NSUserDefaultsはサーバーに送信する必要があります。

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

于 2016-05-17T06:26:51.317 に答える