Aprenderemos aqui como enviar e receber conteúdo conteúdo de páginas web.
O caminho mais fácil para obter conteúdo HTML de uma página web é usando o método stringWith ContentsOfURL: de NSString.
Obtendo cotações de ações no Yahoo!finance
1. No Xcode, crie uma nova aplicação baseada em visualização e salve como GetContentWeb.
2. Abra o GetContentWebViewController.h, adicione uma variável de instância que será responsável por mostrar o conteúdo obtido:
UITextView *resultadosView;
3. Mude para o GetContentWebViewController.m, e em ViewDidLoad adicione o código abaixo:
CGRect resultadoFrame = CGRectMake(10, 10, 300, 100);
resultadosView = [[UITextView alloc] initWithFrame:resultadoFrame];
resultadosView.font = [UIFont systemFontOfSize:14.0];
[self.view addSubview:resultadosView];
[super viewDidLoad];
No ViewDidLoad foi criado um UITexView que será usado para mostrar o cotação das ações.
Adicione mais isso em ViewDidLoad:
NSString *symbol = @"AAPL+GOOG";
NSString *urlString = [NSString stringWithFormat:@"http://finance.yahoo.com/d/quotes.csv?s=%@&f=sndlllyr",symbol];
Com esse código criamos uma string que contém o código para a página Yahoo!finance, symbol é usado para armazenar os termos da consulta, em urlString é usado o método stringWithFormat para acrescentar symbol a string de busca.
Adicione mais código abaixo:
NSURL *url = [NSURL URLWithString:urlString];
NSString *cotacao = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
resultadosView.text = cotacao;
Com essa porção de código você cria um objeto NSURL chamado url usando urlString criado anteriormente e com o método após a variável quotes pegamos o resultado formatado em UTF8 e passamos para a string quotes e exibimos esse resultado no nosso rótulo criado lá no início, lembra?
No método dealloc lembre-se de libear a variável alocada para a label:
[resultadosView release];
Abaixo nosso código completo:
Repare que no viewDidLoad há o método NSLog tanto no início quanto no fim, isso vai te dar no terminal de Debug uma noção do tempo que leva até o sistema carregar a URL, se experimentar mudar a URL para qualquer coisa estranha verá que ele não fornece erros no terminal.
#import "GetContentWebViewController.h"
@implementation GetContentWebViewController
- (void)viewDidLoad {NSLog(@"começou");CGRect resultadoFrame = CGRectMake(10, 10, 300, 100);resultadosView = [[UITextView alloc] initWithFrame:resultadoFrame];resultadosView.font = [UIFont systemFontOfSize:14.0];[self.view addSubview:resultadosView];NSString *symbol = @"AAPL+GOOG";NSString *urlString = [NSString stringWithFormat:@"http://finance.yahoo.com/d/quotes.csv?s=%@&f=sndlllyr",symbol];NSURL *url = [NSURL URLWithString:urlString];NSString *cotacao = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];resultadosView.text = cotacao;NSLog(@"Terminou");}
- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];}
- (void)dealloc {[resultadosView release];[super dealloc];}
@end
Apesar de estar usando exemplo do livro tive que pesquisar a URL com os parâmetros necessários para obter dados do Yahoo!finance.
Compile e aparecerá no simulador como abaixo:
Nenhum comentário:
Postar um comentário