我对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