2009-05-27 8 views
0

Я хотел бы передать несколько параметров из iphone sdk на серверную php, которая взаимодействует с базой данных mySQL.Несколько параметров в объекте NSURL

Я нашел несколько ответов о том, как это сделать, но мне сложно определить, как включить несколько параметров.

то, что у меня есть прямо сейчас


- (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 

как бы я собираюсь сделать это?

ответ

2

Метод - 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

Edit: Где переменные nameField, tagsField, dreamEntry определены и установлены?

Если они не являются NSString и определены в @interface, вы не можете использовать их таким образом.

Я предлагаю жесткого кодирования некоторых значений для тестирования:

NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?date=%@&time=%@&name=%@&category=%d&tags=%@&entry=%@", nil, nil, @"Name", nil, @"Tags", @"Dream"]; 
1

Создание NSURL не открывает связи с сервером. Это всего лишь структура данных для размещения URL-адреса. Вы хотите прочитать NSURLConnection.

Все ли переменные, которые вы передаете в своем формате, действительно номера? %d является заполнителем номера; %@ - объект. Очень удивительно, что вы пропустите ноль, если вы ожидаете номер, даже для тестирования. Он будет «работать», потому что nil равно 0, но это говорит о том, что это не цифры.

+0

Учитывая, что в этом случае сообщение должно работать только в одну сторону ... iphone не возвращает данные с сервера, он просто отправляет его, что может не хватать для этого? Я переключил заполнители соответственно, спасибо за головы. – bcsantos

+0

Создание NSURL похоже на создание NSString. Он не выводит его нигде. Вам все равно нужно подключиться к серверу. Это то, что делает NSURLConnection. Даже если вы не хотите, чтобы какие-либо данные возвращались, вы получите что-то. По крайней мере, вы надеетесь получить HTTP/200, верно? –

+0

спасибо за разъяснение, будет ссылаться на NSURLConnection – bcsantos