我在查找爲什麼此代碼運行緩慢時遇到了一些問題。我在下面做的是從4家公司獲取雅虎財經的JSON數據。從JSON數據中,我只需提取4家公司的名稱。然而,正如我NSLog 4家公司的名字一樣,它需要幾乎2秒的時間才能完成!他們在我做錯了的代碼中的東西?我怎樣才能讓代碼運行得更快?爲什麼這段代碼運行緩慢?
for (int i=0; i<4; i++) {
//download JSON data
NSData* data = [NSData dataWithContentsOfURL:
[NSURL URLWithString:@"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22AAPL%22,%22GOOG%22,%22GE%22,%22MCD%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json"]];
//parse out the json data
NSError* error;
NSDictionary* json = [NSJSONSerialization
JSONObjectWithData:data //1
options:kNilOptions
error:&error];
//Get the relavent data from JSON
NSString* companyName = [[[[[json objectForKey:@"query"] objectForKey:@"results"] objectForKey:@"quote"] objectAtIndex:i] objectForKey:@"Name"] ;
NSLog(@"company name is %@", companyName);
}
你正在做的幾件事情在這裏很慢:'NSURLRequest'和'NSJSONSerialization',你爲什麼要這樣做4次,而不是緩存結果? – 2012-07-24 22:43:07