iOS скачать данные с веб-номера NSURL - PullRequest
0 голосов
/ 30 сентября 2011

Нужен ваш быстрый совет.Я создаю приложение iPhone «Конвертер валют» для извлечения данных с веб-сайтов валют Google.Это идеально подходит для загрузки строки USD -> AUD, USD-> CAD, USD-> HKD, USD-> HUF, USD-> JPY.Тем не менее, я не понимаю, почему NOT работает и возвращает NULL при попытке получить USD-> KRW и USD-> ZMK.Пожалуйста, используйте код как показано ниже.

 -(void)loadData:(NSString*)countryName{
    self.responseData = [NSMutableData data];
        NSString *responseURL = [NSString stringWithFormat: @"http://www.google.com/ig/calculator?q=1USD=?%@", countryName];
        NSLog(@"URL:%@", responseURL);

        NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:responseURL]];

        theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

 }

 - (void)connectionDidFinishLoading:(NSURLConnection *)connection {
         [connection release];

         NSString* responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
         NSLog(@"This is the responseString %@", responseString);
             [responseString release];


 }
 - (void)viewDidLoad {
         [super viewDidLoad];
         [self loadData:@"AUD"];
         [self loadData:@"CAD"];
         [self loadData:@"HKD"];
         [self loadData:@"HUF"];
         [self loadData:@"JPY"];
         [self loadData:@"KRW"];
         [self loadData:@"ZMK"];
  }

Результат с консоли:

 2011-09-30 18:03:50.877 Converter[1691:f503] URL:http://www.google.com/ig/calculator?q=1USD=?AUD
 2011-09-30 18:03:50.879 Converter[1691:f503] URL:http://www.google.com/ig/calculator?q=1USD=?CAD
 2011-09-30 18:03:50.879 Converter[1691:f503] URL:http://www.google.com/ig/calculator?q=1USD=?HKD
 2011-09-30 18:03:50.879 Converter[1691:f503] URL:http://www.google.com/ig/calculator?q=1USD=?HUF
 2011-09-30 18:03:50.879 Converter[1691:f503] URL:http://www.google.com/ig/calculator?q=1USD=?JPY
 2011-09-30 18:03:50.879 Converter[1691:f503] URL:http://www.google.com/ig/calculator?q=1USD=?KRW
 2011-09-30 18:03:50.879 Converter[1691:f503] URL:http://www.google.com/ig/calculator?q=1USD=?ZMK
 2011-09-30 18:03:50.952 Converter[1691:f503] This is the responseString {lhs: "1 U.S. dollar",rhs: "1.02228583 Australian dollars",error: "",icc: true}
 2011-09-30 18:03:50.962 Converter[1691:f503] This is the responseString {lhs: "1 U.S. dollar",rhs: "7.79149947 Hong Kong dollars",error: "",icc: true}
 2011-09-30 18:03:50.966 Converter[1691:f503] This is the responseString {lhs: "1 U.S. dollar",rhs: "215.889465 Hungarian forints",error: "",icc: true}
 2011-09-30 18:03:50.982 Converter[1691:f503] This is the responseString {lhs: "1 U.S. dollar",rhs: "1.03910031 Canadian dollars",error: "",icc: true}
 2011-09-30 18:03:50.993 Converter[1691:f503] This is the responseString {lhs: "1 U.S. dollar",rhs: "76.5579544 Japanese yen",error: "",icc: true}
 2011-09-30 18:03:51.010 Converter[1691:f503] This is the responseString (null)
 2011-09-30 18:03:51.047 Converter[1691:f503] This is the responseString (null)

Пожалуйста, помогите и высоко ценится.

1 Ответ

1 голос
/ 30 сентября 2011

Вы не должны делиться responseData со всеми запросами, поскольку они отправляются асинхронно, все они завершаются в произвольное время, и вы, вероятно, записываете все полученные данные (из всех запросов) в responseData. Каждый запрос должен иметь свои собственные ресурсы (resourceData, theConnection).

Посмотрите на ASIHTTPRequest для простого решения.

...