我在查找为什么此代码运行缓慢时遇到了一些问题。我在下面做的是从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