我對JSON解析一個初學者,想動手提取價值。我正在成功解析我需要的數據。但問題是我不知道如何在另一個函數中保存和使用該值。無法解析的數據
現在,我做鑑於Controller.m或者一切爲了簡單起見。意思是我所有的代碼都在viewcontroller.m 稍後會使用一個單獨的類。
我有一個按鈕,並在我的故事板的標籤。所以我試圖從Json .api中獲取一個值,並希望在標籤中顯示該值。當用戶按下按鈕時,觸發解析。正如你可以在下面。
- (IBAction)btnPressed:(id)sender {
NSURL *url=[NSURL URLWithString:@"http:........myweb"];
NSURLRequest *request=[NSURLRequest requestWithURL:url];
connection=[NSURLConnection connectionWithRequest:request delegate:self];
if(connection)
{
webData=[[NSMutableData alloc]init];
self.outputLbl.text = [NSString stringWithFormat:@"%@", goldRate];
}
但標籤上打印的值爲空。當我們獲取信息並在桌面視圖中顯示時,我們設置了代表。但對於一個標籤我們不設置委託。所以我很困惑問題是什麼?我忘了設置一個委託或我錯誤地傳遞數據。請點擊下面的功能。
-(void) connectionDidFinishLoading:(NSURLConnection *)connection{
NSDictionary *allDataDictionary=[NSJSONSerialization JSONObjectWithData:webData options:0 error:nil];
NSArray *myDataArray=[allDataDictionary objectForKey:@"data"];
NSArray *myGoldArray=[myDataArray objectAtIndex:0];
goldRate=[[myGoldArray objectAtIndex:1] stringValue];
}
我已經使這個goldRate成爲一個全局變量。但是當我調試我的程序。在connectionDidFinishLoading中,goldRate值絕對是我想要的。但是當我嘗試在btnPressed函數中使用此goldRate時,在該函數中該值爲null。
請幫忙。
感謝,做的工作。但是有沒有一種方法可以將此值從connectionDidFinishLoading傳遞到我的代碼中的另一個方法/函數?因爲如果我嘗試通過從connectionDidFinishLoading調用將值傳遞給另一個函數,它不會保存該值。 – 2015-04-03 00:26:29
你可以使它成爲一個成員變量 – 2015-04-03 14:12:56