我想加载网页内容异步。我在我的viewdidappear方法中有大量的网络电话,我的应用程序非常无响应。我理解同步和异步加载内容的概念,但不知道如何判断这是否是异步完成的。下面的代码只是嵌入在我的viewdidappear方法中,并且我假设它正在同步加载。我如何编辑这个以使其异步加载?谢谢你们!异步加载网页内容
NSString *strURLtwo = [NSString stringWithFormat:@"http://website.com/json.php?
id=%@&lat1=%@&lon1=%@",id, lat, lon];
NSData *dataURLtwo = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURLtwo]];
NSArray *readJsonArray = [NSJSONSerialization JSONObjectWithData:dataURLtwo options:0
error:nil];
NSDictionary *element1 = [readJsonArray objectAtIndex:0];
NSString *name = [element1 objectForKey:@"name"];
NSString *address = [element1 objectForKey:@"address"];
NSString *phone = [element1 objectForKey:@"phone"];
谢谢superglenn。我可以在我的viewdidload/viewdidappear方法中引用名称,地址和电话NSStrings吗?如果异步加载它,我该如何传递这些数据? – Brandon 2013-02-23 08:46:54
如果您让viewController成为NSURLConnectionDelegate,您将从viewDidLoad运行fetchData方法,然后在connectionDidFinishLoading中获取数据时使用获取的数据(名称,地址和电话)。如果您创建另一个类作为委托,则可以使用NSNotificationCenter在完成时发布数据(并在viewController中为通知添加观察者)。 – SuperGlenn 2013-02-23 09:06:38