我想加載網頁內容異步。我在我的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