0

我要使用AFNetworking 3.0.

在我的第一个视图中,当我输入手机号码并单击提交按钮然后它发送到服务器并从服务器获取响应,在该响应中,假设我得到 2 个参数(如 id:xx,token:xxxxx,)。

现在我的问题是——

当我从服务器获得响应时,我想进入第二个视图,当我单击登录按钮时,我只想发送从以前的响应中获得的令牌(不是 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;
       }
 }
4

1 回答 1

1

AFNetworking很好地将JSON数据转换idiOS . 您只需要根据您的回复进行转换。

通常可以这样做,例如

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 回答