Vários parâmetros em NSURL objeto
Pergunta
Gostaria de passar vários parâmetros a partir do SDK do iPhone a um php do lado do servidor que interage com um banco de dados mySQL.
i encontrado algumas respostas sobre como fazer isso, mas eu estou tendo um momento difícil descobrir como incluir vários parâmetros.
o que eu tenho agora é
- (IBAction)sendButtonPressed:(id)sender
{
NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?date=%d", theDate];
NSURL *url = [[NSURL alloc] initWithString:urlstr];
[urlstr release];
[url release];
}
que iria trabalhar para um parâmetro, mas o que eu estou procurando seria algo como
http://server.com/file.php?date=value&time=value&category=value&tags=value&entry=value
Como eu poderia ir sobre como fazer isso?
Solução
O método - initWithFormat
leva vários argumentos para a string de formato.
Assim, você pode fazer coisas como esta:
NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?date=%d&second=%d&third=%d", theDate, 2, thirdIVar];
- initWithFormat
funciona quase igual ao printf()
e variantes.
Aqui está alguns exemplos printf()
http://stahlforce.com/dev/index. php? ferramenta = csc02
Edit:? Onde estão as variáveis ??nameField, tagsField, dreamEntry
definido e set
A menos que sejam NSString
s e definido no @interface
você não pode usa-los desta forma.
Eu sugiro difícil codificação alguns valores para o teste:
NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?date=%@&time=%@&name=%@&category=%d&tags=%@&entry=%@", nil, nil, @"Name", nil, @"Tags", @"Dream"];
Outras dicas
Criar uma NSURL não abre comunicação com um servidor. É apenas uma estrutura de dados para a realização de uma URL. Você quer ler sobre NSURLConnection .
Tem todas as variáveis ??que você está passando em seu formato realmente números? %d
é o marcador de posição para um número; %@
é um objecto. É muito surpreendente para estar passando nulo se você está esperando um número, mesmo para fins de teste. Ele vai "trabalhar" porque nulo é 0, mas sugere que estes não são realmente números.