2016-05-17 60 views
0

我打算使用AFNetworking 3.0如何保存响应并将响应中的特定参数发送到使用AFN 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; 
     } 
} 
+0

请遵循答案[**视图控制器之间传递数据**](http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) – swiftBoy

+0

尝试: loginViewController *控制器=( loginViewController *)segue.destinationViewController; – Meera

+0

尝试appdelegate变量并将令牌值保存在此变量中,以便您可以在任何视图中访问值 – iOS

回答

1

AFNetworking公转化JSON数据到id类型iOS。你只需要根据你的回应进行转换。

通常它可以像这样完成,例如,

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

一次,你有这样的令牌可以

  1. 存储它的一些地方,可能是NSUserDefaults的(不推荐,但简单的方法)。
  2. 然后,无论何时您需要传递该令牌时,都应该将其获取(无论您存储在何处),在我们的案例中为NSUserDefaults,并将其发送到服务器。

请注意:如果您的令牌每次都在更改,您可以将其存储为临时(可能是单件)并在需要时使用它。只要你可以在任何视图控制器中需要令牌,你就不应该将它传递给每个视图控制器。更好地使其全球可用。

相关问题