Несколько параметров в объекте NSURL
Вопрос
Я хотел бы передать несколько параметров из iphone sdk на серверный php, который взаимодействует с базой данных MySQL.
я нашел несколько ответов о том, как это сделать, но мне трудно понять, как включить несколько параметров.
то, что у меня есть прямо сейчас, это
- (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];
}
который работал бы для 1 параметра, но то, что я ищу, было бы чем-то вроде
http://server.com/file.php?date=value&time=value&category=value&tags=value&entry=value
как бы я собирался это сделать?
Решение
В - initWithFormat
метод принимает несколько аргументов для строки формата.
Таким образом, вы можете делать подобные вещи:
NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?date=%d&second=%d&third=%d", theDate, 2, thirdIVar];
- initWithFormat
работает почти идентично printf()
и это варианты.
Вот некоторые printf()
примеры http://stahlforce.com/dev/index.php?tool=csc02
Редактировать:Где находятся переменные nameField, tagsField, dreamEntry
определено и задано?
Если только они не являются NSString
s и определенный в @interface
вы не можете использовать их таким образом.
Я предлагаю жестко закодировать некоторые значения для тестирования:
NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?date=%@&time=%@&name=%@&category=%d&tags=%@&entry=%@", nil, nil, @"Name", nil, @"Tags", @"Dream"];
Другие советы
Создание NSURL не открывает связь с сервером.Это просто структура данных для хранения URL-адреса.Вы хотите почитать о Соединение nsurl с.
Действительно ли все переменные, которые вы передаете в своем формате, являются числами? %d
является заполнителем для числа; %@
является объектом.Очень удивительно переходить к нулю, если вы ожидаете получить число, даже в целях тестирования.Это "сработает", потому что nil равно 0, но это говорит о том, что на самом деле это не числа.