2016-05-17 61 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,並將其發送到服務器。

請注意:如果您的令牌每次都在更改,您可以將其存儲爲臨時(可能是單件)並在需要時使用它。只要你可以在任何視圖控制器中需要令牌,你就不應該將它傳遞給每個視圖控制器。更好地使其全球可用。

相關問題